본문 바로가기

분류 전체보기351

[알고리즘] Sliding Window 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘 - 배열이나 리스트 요소의 일정 범위 값을 비교할 때 사용하면 유용한 알고리즘 - 투포인터 사용. 투포인터와의 차이는 구간의 넓이가 항상 동일하다는 것 - 핵심: 공통 요소를 재사용하는 것 - start와 end를 사용하고 end가 이동하면서 조건을 벗어나면 start가 이동하는 구조 문제 예시) 1. 정수로 이루어진 배열 [ 2,4,7,10,8,4,5,6,7,1]에서 길이가 3인 서브배열의 합계가 가장 큰 서브배열은? arr는 주어진 배열, k는 길이 int solution(vector arr, int k){ int start = 0, end = 0; int maxSum = 0; int sum = 0; while(end= k){ maxSum = max(maxSum, sum); .. 2020. 9. 30.
[java spring] JDBC와 JPA/Hibernate, Mybatis 1. Persistence 영속성 - 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 - 일반적으로 데이터베이스에 저장하면 영속성이 생긴다. Persistence Layer - 프로그램 아키텍쳐에서 데이터에 영속성을 부여해주는 계층 - 데이터베이스 역할과 관련된 계층이라고 보면 된다. - java에서는 jdbc를 이용한 직접 구현과 framework를 이용한 개발 두 가지가 존재하지만 후자를 더 많이 사용한다. 2. Persistence Framework - JDBC보다 간단하게 데이터베이스와 연동가능. 빠른 개발과 안정적인 구동이 장점 - 두 종류가 존재한다. SQL Mapper와 ORM - 예시: JPA, Hibernate, Mybatis 1) SQL Mapper와 ORM - OR.. 2020. 9. 24.
[mysql] mysql 사용하기 mysql 서버 접속 # mysql 서버 접속 mysql -uroot -p 특정 포트번호로 접속 mysql -u -h -p 비밀번호: user password database 보기 mysql> show databases; database 사용 mysql> use ; 전체 유저 보기 mysql> select user, host from user; 유저 생성 mysql> create user '아이디'@'%' identified by '비밀번호'; 권한 부여 1. 특정 db에 모든 권한(수정, 삭제 ..) 부여 mysql> grant all privileges on .* to ''@'%'; 2. 모든 db에 모든 권한 부여 mysql> grant all privileges on *.* to ''@'%'; 2020. 9. 22.
[java spring] maven 이란 1. 빌드의 개념 - 소스 코드(java, cpp ) 혹은 프로젝트에서 쓰인 파일이나 자원(.xml, .jar )을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물을 의미한다. - 소스코드를 실행가능한 소프트웨어 가공물로 바꾸는 과정임 2. 빌드 도구 - 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 프로그램 - 라이브러리 추가와 라이브러리 버전 동기화의 어려움을 해소하고자 등장했다. - 초기 java 빌드 도구는 Ant -> Maven이 많이 쓰이고 현재는 Gradle이 많이 쓰임 - Ant는 스크립트 작성도 많고 라이브러리 의존성 관리가 안돼서 불편 Maven이란 1. 정의와 특징 - 자바용 빌드 도구이자 프로젝트 관리자 & 프레임워크. 아파치 Ant의 대안임 -.. 2020. 9. 22.