일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Stack
- stream
- datastructure
- 알기쉬운 알고리즘
- 윤성우의 열혈 자료구조
- 윤성우 열혈자료구조
- Serialization
- R
- coding test
- 혼자 공부하는 C언어
- 이것이 자바다
- C 언어 코딩 도장
- list 컬렉션
- 이스케이프 문자
- buffer
- 메모리구조
- insertion sort
- C programming
- s
- Algorithm
- JSON
- Selection Sorting
- Graph
- Today
- Total
목록전체 글 (514)
Engineering Note
Entity- 데이터 베이스 테이블에 대응하는 클래스- @Entity 어노테이션이 붙은 클래스는 JPA에서 관리하는 엔티티가 된다. Entity Manager Factory- Entity Manager instence를 관리하는 주체- 애플리케이션 실행 시 한 개만 만들어지며 사용자로부터 요청이 오면 Entity Manager Factory로 부터 Entity 매니저를 생성한다. Entity Manager- Persistence Context(영속성 컨텍스트)에 접근하여 Entity에 대한 데이터베이스 작업을 제공- 내부적으로 데이터베이스 커넥셔능ㄹ 사용해서 데이터베이스에 접근 Entity Manger의 메서드1. find() : Persistence Context에서 Entity를 검색하고, ..
프로젝트는 EC2에 배포하고 나서 직접 build를 하는데 에러가 발생했다.빌드 에러 발생 환경 Application AWS EC2 배포, MySQL RDS 구축 빌드 도구는 gradle을 사용했고, 아래 명령어를 통해 빌드를 했다../gradlew build 에러 메세지> Task :testConcurrencyStockOrderApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at Abstract..
Binary Search Tree(BST)- 이진 탐색 트리- 데이터를 효율적으로 저장, 검색, 삽입, 삭제하기 위해 사용되는 일종의 트리 자료구조- 각 노드가 최대 두 개의 자식 노드를 가진다. 특징- 왼쪽 자식 노드 : 부모 노드의 값보다 항상 작거나 같은 값을 가진다.- 오른쪽 자식 노드 : 부모 노드 값보다 큰 값을 가진다.- 탐색 : 위 같은 규칙을 통해 특정 값을 찾을 때마다 탐색 범위가 절반씩 줄어들어 평균적으로 O(logN)의 시간 복잡도를 가진다. 용도- 인 메모리 데이터 관리에 사용
스프링 부트는 WAS Tomcat을 내장하고 있고 HTTP 요청을 멀티쓰레딩으로 방식으로 처리 할 수 있다.사용자의 요청이 오면 쓰레드를 통해 처리한다. 이때 DB 요청이 필요한 로직이 있다면 DB 커넥션을 통해 DB에 쿼리를 통해 데이터를 조회하거나 업데이트한다.톰캣 최대 쓰레드보다 사용자의 요청이 많다면 요청된 쓰레드가 반환 될때 까지 큐에 대기하가가 자신의 순서가 되면 요청이 처리된다.마찬가지로 DB 커넥션 풀보다 DB에 요청할 커넥션이 많다면 이미 사용중인 커넥션이 반환될 때까지 대기하고 커넥션을 사용할 수 있다.DB 커넥션은 DB에 요청할 때 WAS의 힙메모리와 DB 서버의 각 커넥션에 대한 세션정보를 관리하기 위해 메모리를 사용한다.그래서 DB 서버의 메모리용량과 커넥션 사용시 필요한 메모리용..
1. 페이징이란데이터베이스의 레코드를 개수로 나눠 페이지를 구분하는 것ex) 25개의 레코드가 있다면 7개씩, 총 4개의 페이지로 구분하고 그중에서 특정 페이지를 가져오는 것1-1. JPA에서 페이징 처리Page, Pageable 사용//페이징 처리가 가능한 쿼리메서드 예시Page findByName(String name, Pageble pageable);리턴 타입으로 Page 타입을 설정하고 매개변수로 Pageable 타입의 객체를 선언한다. //페이징 쿼리 메서드 호출 방법Page productPage = productRepository.findByName("펜", PageRequest.of(0,2));Pageable 파라미터를 전달하기위해 PageRequest 클래스 사용할 수 있고, PageRe..
LIMIT- SELECT 명령에서 결과값으로 반환되는 행을 제한하는 명령어 사용 예시- 인터넷 쇼핑몰에서 물건을 구매하거나 커뮤니티 사이트의 게시판을 읽다보면, 수많은 상품과 게시물을 전부 하나의 페이지에 표시하는 대신 몇 건씩 나누어 표시할 때 사용 사용 방법SELECT 열명 FROM 테이블명WHERE 조건식 ORDER BY 열명LIMIT 행수SELECT * FROM sampleLIMIT 3; -> sample 데이터에서 최대 3개의 행만 반환. 테이블에 1개의 데이터만 있다면 1개의 데이터만 반환 OFFSET- 데이터를 취득할 위치를 가리키는 것, LIMIT구에 OFFSET으로 지정할 수 있다.- 페이지네이션을 구현할 때, 첫 번째 페이지라면 LIMIT만으로 데이터를 조회할 수 있지만, 두 번째 페..
1. 람다식이란?Lambda expression(람다 표현식, 람다식)- 메서드를 하나의 식(expression)으로 표현한 것.- 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명함수(anonymous fuction)'라고도 한다. 예시//메서드int method() { return (int) (Math.random()*5) + 1;}//람다식int[] arr = new int[5];Arrays.setAll(arr, (i) -> (int)(Math.random()*5) + 1; 람다식의 장점- 모든 메서드가 클래스에 포함되어야 한것과 달리, 람다식은 오직 람다식 자체만으로 메서드의 역할을 대신할 수 있다. 2.람다식 작성하기람다식은 '익명 함수'답게 메서드에서 메서드..
Stream- Java8부터 도입된 컬렉션 및 배열의 요소를 반복처리 하기 위한 기술- for문과 Iterator와 비교해 가독성이 좋고, 재사용성이 좋다.- Stream을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다. Stream은 중간 연산과 최종 연산이 있다.중간 연산은 연산 결과가 스트림인 연산, 스트림에 연속해서 중간 연산을 할 수 있다. 최종 연산은 연산 결과가 스트림이 아닌 연산이다. 스트림의 요소를 소모하므로 단 한번만 사용할 수 있다.중간 연산 예시 : map(), filter()최종 연산 예시 : forEach(), count() 변환 - map()- 스트림의 요소에 저장된 값 중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할 ..