TIL (11) 썸네일형 리스트형 [TIL] 220124 이분탐색(이진탐색) 배열 또는 리스트를 탐색하는 방법 배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지를 알아내어 탐색의 범위를 반으로 줄인다. 구현 탐색해야 할 리스트 Integer[] = array가 있을 때, 인덱스 마지막 값을 end, 첫번째 값을 start라고 한다. start, end는 탐색할 시작점과 종료점이 된다. start = 0 end = n-1 = 14 이분탐색을 위한 mid 값을 구한다. mid = (start + end)/2 이때 구하고자 하는 값 k의 값이 9일 경우, array[mid]의 값은 7이므로 array[mid] k : end = mid-1.. [TIL] 220121 이중 리스트 복사할때는 .clone()을 사용하면 깊은 복사가 되지 않는다. int[][] lock = new int[newLock.length][newLock.length]; for(int i=0;i [TIL] 220112 ArrayList의 remove() 메서드가 수행되지 않음 원인 remove() 메서드의 매개변수로 Wrapper 클래스를 전달하면 remove(Object O) 메서드가 실행되기 때문에 실행되지 않음 해결방법 입력 변수로 primitive 타입을 넣어주자. Integer indexWrapper = 0; int indexPrimitive = 0; ArrayList ary = new ArrayList(); ary.add(1); ary.add(2); ary.add(3); ary.remove(indexWrapper); //[1, 2, 3] ary.remove(indexPrimitive); //[2, 3] Min-Max heap 알고리즘 문제를 풀던 중 계속 시간초과가 발생하는 문제가 있었다. https://w.. [TIL] 210929 고급매핑 rdb 테이블을 매핑한 객체를 좀더 객체지향적으로 사용할 수 있도록 제공해주는 기능들 상속 관계 매핑 조인 테이블 전략 싱글 테이블 전략 @MappedSuperclass 식별자 클래스 @IdClass @EmbeddedId 상속관계매핑 테이블 구조를 마치 상속받는 것 처럼 extends를 이용해 작성하는 전략 조인 테이블 전략 부모 클래스의 공통된 정보는 한 테이블에서 관리하고, 나머지 각 자식 클래스의 정보들은 다른 클래스에서 별도로 관리 // 부모 클래스 @Entity @Table(name = "item") @Inheritance(strategy = InheritanceType.JOINED) public abstract class Item { ... } @Inheritance 애노테이션에서 J.. [TIL] 210810 1. MySQL 2. 클라우드 컴퓨팅 / AWS 3. Docker MySQL MySQL 역사 1995년 스웨덴 회사였던 MySQL AB에 의해 개발된 관계형 데이터베이스 오픈소스로 시작됨 My는 개발자 중 한 사람의 딸의 이름이었음 2008년 썬 마이크로시스템가 MySQL AB를 인수 2009년 오라클이 썬을 인수하면서 Java, MySQL의 소유권을 가지게 되었는데, Mysql이 유료화 될 수도 있다는 여부가 생김 2010년 MySQL의 처음 개발자였던 Monty가 MySQL과 호환이 되는 MariaDB라는 오픈소스 개발 현재 Mysql은 무료, 유료버전이 있음 MySQL 종류와 버전 MariaDB 오픈 소스로 무료 MySQL 5.5에 기반해서 개발됨 [TIL] 210809 데이터베이스 관계형 데이터베이스는 크게 2가지 종류로 나뉜다. 프로덕션 관계형 데이터베이스(RDBMS)와 데이터 웨어하우스이다. 1. 프로덕션 관계형 데이터베이스 서비스의 운영에 필요 데이터를 저장하는 곳 빠른 처리속도가 중요함 보통 웹,앱에서 생성되는 데이터들을 프로덕션 관계형 데이터베이스에 저장함(회원가입, 물건구매 등등) 처리 속도가 중요 2. 데이터 웨어하우스 사용자들이 내부 직원들인 경우 처리하는 데이터가 상대적으로 크다. 빠르게 처리하는것보다 얼마나 큰 데이터를 처리할 수 있느냐에 초점이 맞춰져있음 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 사용 BigQuery, Snowflake, Redshift, MySQL, ... 처리속도 보다는 구조화된 큰 데이터를 처리하는 것.. [TIL] 210806 1. Dependency 2. 프로젝트 설계 3. 프로젝트 구현 1. Dependency 구현 시 자주 사용하는 라이브러리 : javafaker, Lombok (1) javafaker 1) maven 라이브러리 검색 사이트 : https://search.maven.org/ 2) Gradle Groovy DSL 부분 코드 복사 3) build.gradle 파일 dependency 설정 (2) Lombok 1) lombok 설치 : https://projectlombok.org/ 2) javaFaker와 같은 방법으로 dependency 설정 3) 따로 플러그인을 설치해야 사용 가능 [Files] -> [setting] -> [Plugins] -> [lombok] 플러그인 설치 사용 예시 JavaFaker .. [TIL] 210805 1. Collection 2. Iterator 3. Stream 4. Optional Collection 여러 데이터의 묶음을 Collection이라고 한다. Collection은 추상체 Collection의 구상체 : List, set List의 구상체 : LnkedList, ArrayList, Vector, Stack Set의 구상체 : HashSet Iterator 여러 데이터의 묶음을 풀어서 하나씩 처리할 수 있는 수단을 제공한다. next()를 통해서 다음 데이터를 조회할 수 있다. 앞 쪽 방향으로 방향을 바꿀 수 없다. --> 이전 데이터 조회 불가 Stream Java 8 이상에서 부터 사용 가능. 데이터의 연속을 나타냄 Collections.stream() 을 제공, stream() 메서드.. 이전 1 2 다음