키워드이분 탐색, Bean 생명주기, Aware 인터페이스학습 내용이분 탐색이분탐색의 l, h 그리고 종료 시점의 정답 값, 문제에서 어떤 값을 이분 탐색의 범위로 지정해야 할까와 같은 것을 확실하게 익히기 위해 반복적으로 이분 탐색 문제를 풀었다.Bean 생명주기스프링에서 빈이 생성되고 종료되는 시점에 어떤 일이 일어나고 어떻게 콜백 메서드를 지정해주는지 알아보았다.빈은 어노테이션 혹은 XML로 스캔되어지며, 이를 통해 어떤 빈이 등록되어져야하는지 알아낸다.스캔된 빈들은 Aware 인터페이스를 구현하고 있는지 검사한다. (Aware 인터페이스 또한 이번에 알게되었다.)빈이 생성될때 실행되는 생성 콜백 메서드들이 실행된다. (@PostConstruct, @Bean(initMethod), Initializ..
전체 글
창의의 개발블로그입니다.개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 정리하였다.생산자 소비자 문제는 여러 스레드가 동시에 데이터를 생산하고 소비하는 경우 발생하는 문제이다.알아보자!.본론개념생산자, Producer는 데이터를 생산하는 역할을 한다.소비자, Consumer는 데이터를 소비하는 역할을 한다.버퍼, Buffer는 생산자가 생성한 데이터를 소비자가 소비하기 전까지 임시로 저장하는 공간이다.문제만약 생산자가 너무 빠르게 데이터를 생산할..
Search키워드이분 탐색PCCP학습 내용이분 탐색을 숙달하기 위해 여러 문제들을 살펴보았음.기존의 학습을 통해 배웠던 이분 탐색은 정렬된 N 길이의 배열이 존재할 때, merge sort와 비슷한 방식으로 절반씩 값들을 버려가며 목표 target 값을 찾아내는 알고리즘이었다.하지만, 코테에서 막혔던 이분 탐색 문제들은 이런 방식보다는, 조건을 만족하는 값들과 만족하지 않는 값들의 경계값을 찾아내어 최솟값 혹은 최댓값을 구해내는 문제들이 많이 존재했다.특히 코테 문제들은 어떤 것을 이분 탐색을 통해 찾아낼 것인지 잘 찾아야 하고, 경계값들을 잘 선택하는 것이 중요하다. 특히 l, h 값을 잘 선택해야 0나누기 Exception이 발생하지 않는다.PCCP 자격증 취득을 위해 기출 문제 몇문제를 풀어보았음...
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com 김영한 강사님의 강의를 듣고 정리하였다.본론자바는 1.5버전 부터 Lock 인터페이스와 ReentrantLock 구현체를 제공한다.이는 LockSupport 기능을 활용하여 만들어졌다.public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); b..
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 정리하였다.본론synchronized 키워드를 이용한 락은 편리하게 임계 영역을 보호할 수 있지만 다음의 문제가 존재한다.임계 영역에서 락을 획득하길 기다리는 스레드들은 BLOCKED 상태에 들어가서 락을 획득할 때까지 대기한다. 이때, 타임아웃 혹은 인터럽트가 불가능하다.임계 영역에서 락을 획득할 때 스레드들은 공정하게 락을 획득하지 못하고 우리는 어떤 스레드가 락을 획득하..
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 정리하였다.본론임계 영역이란?임계 영역(critical section)이란 여러 스레드가 동시에 접근하게 된다면 데이터의 불일치나 우리가 예상하지 못한 결과가 발생할 수 있는 위험하고 중요한 코드 부분을 뜻한다.여러 스레드들이 동시에 접근해서는 안되는 공유 자원을 접근(조회)하거나 수정하는 부분을 의미한다.출금 예제@Overridepublic boolean withdraw(i..
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 정리하였다.본론자바에는 volatile 이라는 키워드가 존재한다.volatile은 메인 메모리에 값을 읽고쓴다는 의미이다.왜 이런 키워드가 존재하고 어디서 사용하는 것일까?문제 상황public class VolatileFlagMain{ public static void main(String[] args){ MyTask task = new..
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 정리하였다.스레드의 작업이 바쁘지 않은 경우 다른 스레드에게 CPU를 양보하는 것이 효율적일 것이다.어떻게 하면될까?본론스레드가 CPU를 할당받아 실행하는 것은 운영체제의 스케줄러가 담당한다.하지만 스레드의 작업이 그렇게 바쁘지 않은 경우 다른 스레드가 작업을 하는 것이 효율적일 것이다.어떤 방법을 사용할 수 있을까?1. Thread.sleep(1)Thread.sleep() ..