키워드그리디, SWEA, gradle, Spring과 톰캣의 연결학습 내용그리디그리디 알고리즘에 대한 학습이 부족한 것 같아, 몇 가지 유형을 풀었다.각각의 문제들마다 접근하는 방식이 많이 달라 고민이 많이 필요한 문제들이 많이 있었다.SWEA싸피 코테를 대비하기 위해 SWEA 환경에도 익숙해지고자 D3, D4 추천순으로 문제를 풀었다.유형이 다양하게 있어서 좋았다.gradle매번 스프링 부트 프로젝트를 만들 때마다 사용하고 있었지만, 한번도 학습해보지 않았던 gradle에 대하여 간단하게 찾아보았다.groovy는 XML처럼 문서 형태인줄 알았지만, JVM 상에서 돌아가는 객체지향 스크립트 언어였다.! 심지어 build.gradle은 Project라는 인터페이스의 인스턴스였다. 그래서 해당 인터페이스의 ..
TIL
키워드이분 탐색, BlockingQueue, Tomcat과 Spring학습 내용이분 탐색이분 탐색이 조금이라도 다른 유형이 나오거나, 범위값을 잘못 생각하거나 하는 실수가 많아 조금 더 연습하였다.BlockingQueue자바에서는 생산자 소비자 문제를 해결하기 위한 BlockingQueue를 지원한다.이는 ReentrantLock을 활용하여 synchronized, Object.wait() notify()의 한계점들을 보완한다.한계점으로는 큐가 비어있거나, 가득찬 경우 소비자와 생산자는 하나의 대기집합에 속하기 때문에 서로가 서로를 깨울 수 없고 랜덤으로 깨워지기 때문에 효율성 문제가 존재했다.하지만 ReentrantLock을 사용할 경우, Condition 객체를 활용하여 이런 대기집합을 분리하여 유연..
키워드이분 탐색, Bean 생명주기, Aware 인터페이스학습 내용이분 탐색이분탐색의 l, h 그리고 종료 시점의 정답 값, 문제에서 어떤 값을 이분 탐색의 범위로 지정해야 할까와 같은 것을 확실하게 익히기 위해 반복적으로 이분 탐색 문제를 풀었다.Bean 생명주기스프링에서 빈이 생성되고 종료되는 시점에 어떤 일이 일어나고 어떻게 콜백 메서드를 지정해주는지 알아보았다.빈은 어노테이션 혹은 XML로 스캔되어지며, 이를 통해 어떤 빈이 등록되어져야하는지 알아낸다.스캔된 빈들은 Aware 인터페이스를 구현하고 있는지 검사한다. (Aware 인터페이스 또한 이번에 알게되었다.)빈이 생성될때 실행되는 생성 콜백 메서드들이 실행된다. (@PostConstruct, @Bean(initMethod), Initializ..
Search키워드이분 탐색PCCP학습 내용이분 탐색을 숙달하기 위해 여러 문제들을 살펴보았음.기존의 학습을 통해 배웠던 이분 탐색은 정렬된 N 길이의 배열이 존재할 때, merge sort와 비슷한 방식으로 절반씩 값들을 버려가며 목표 target 값을 찾아내는 알고리즘이었다.하지만, 코테에서 막혔던 이분 탐색 문제들은 이런 방식보다는, 조건을 만족하는 값들과 만족하지 않는 값들의 경계값을 찾아내어 최솟값 혹은 최댓값을 구해내는 문제들이 많이 존재했다.특히 코테 문제들은 어떤 것을 이분 탐색을 통해 찾아낼 것인지 잘 찾아야 하고, 경계값들을 잘 선택하는 것이 중요하다. 특히 l, h 값을 잘 선택해야 0나누기 Exception이 발생하지 않는다.PCCP 자격증 취득을 위해 기출 문제 몇문제를 풀어보았음...