일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 타임리프
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch6
- 스프링 입문(무료)
- 자바의 정석 기초편 ch5
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch2
- 스프링 mvc2 - 검증
- 자바 기초
- 스프링 고급 - 스프링 aop
- 자바 중급2편 - 컬렉션 프레임워크
- 람다
- @Aspect
- 자바로 계산기 만들기
- 자바의 정석 기초편 ch4
- 자바 고급2편 - io
- 자바의 정석 기초편 ch14
- 데이터 접근 기술
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch12
- 자바 고급2편 - 네트워크 프로그램
- 스프링 트랜잭션
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch1
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch7
- 2024 정보처리기사 시나공 필기
- 자바 중급1편 - 날짜와 시간
- 자바의 정석 기초편 ch9
- Today
- Total
목록자바 로드맵 강의 (68)
개발공부기록

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 동기화 - 출금 예제1) 예제 시작(1) 동기화멀티스레드를 사용할 때 가장 주의해야 할 점은, 같은 자원(리소스)에 여러 스레드가 동시에 접근할 때 발생하는 동시성 문제임여러 스레드가 접근하는 자원을 공유 자원이라고 하는데 대표적인 공유 자원은 인스턴스의 필드(멤버 변수)임멀티스레드를 사용할 때는 이런 공유 자원에 대한 접근을 적절하게 동기화(synchronization)해서 동시성 문제가 발생하지 않도록 방지하는 것이 중요함(2) BankAccount이 인터페이스의 구현체를 점진적으로 발전시키면서 문제를 해결할 예정withdraw(amount): 출금할 금액을 매개변수로..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. volatile, 메모리 가시성1) 예제1(1) VolatileFlagMainwork스레드는 MyTask를 실행하고 여기에는 runFlag를 체크하는 무한 루프가 있으며 runFlag 값이 false가 되면 무한 루프를 탈출하며 작업을 종료이후에 main 스레드가 runFlag의 값을 false로 변경하면 work 스레드가 무한 루프를 탈출하며 작업을 종료하기를 기대했지만 실행해보면 출력문만 출력되고 무한루프는 종료되지 않는 것을 확인할 수 있음** 주의!여기서는 volatile 키워드를 사용하지 않는 변수를 써야함무한 루프에 다른 코드가 있으면 다르게 동작함package..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 인터럽트1) 스레드의 작업을 중간에 중단 (1) ThreadStopMainV1특정 스레드의 작업을 중단하는 가장 쉬운 방법은 변수를 사용하는 것임여기서는 runFlag를 사용해서 work 스레드에 작업 중단을 지시할 수 있음작업 하나에 3초가 걸린다고 가정하고 sleep(3000)을 사용하였고 main 스레드에서 4초 뒤에 runFlag를 false로 변경하여 작업 중단을 지시함volatile 키워드는 뒤에서 자세히 설명하는데 지금은 단순히 여러 스레드에서 공유하는 값에 사용하는 키워드라는 정도로 알고 넘어가면 됨프로그램을 실행해보면 시작 후 4초 뒤에 main 스레드가 ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 스레드 기본 정보(1) ThreadInfoMainThread 클래스가 제공하는 정보들 확인package thread.control;public class ThreadInfoMain { public static void main(String[] args) { // main 스레드 Thread mainThread = Thread.currentThread(); log("mainThread = " + mainThread); log("mainThread.threadId() = " + mainThread.threadId()); ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용더보기프로젝트 환경 구성 1. IDE: 인텔리제이2. Name: java-adv13. Build system: IntelliJ4. JDK: 21이상(자바 19이상에서 제공하는 기능을 사용함)1. 스레드 시작1) 스레드 시작(1) HelloThreadThread 클래스를 상속하고 스레드가 실행할 코드를 run() 메서드에 재정의Thread.currentThread()를 호출하면 해당 코드를 실행하는 스레드 객체를 조회할 수 있음Thread.currentThread().getName(): 실행 중인 스레드의 이름을 조회함package thread.start;public class ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 멀티태스킹과 멀티프로세싱1) 멀티태스킹과 멀티 프로세싱(1) 단일 프로그램 실행연산을 처리할 수 있는 CPU코어가 1개만 있고 2개 이상의 프로그램을 동시에 실행한다고 가정프로그램의 실행은 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이며 CPU코어는 하나로 가정했으므로 한 번에 하나의 프로그램 코드만 실행할 수 있음하나의 프로그램안에 있는 코드를 모두 실행한 후에야 다른 프로그램의 코드를 실행할 수 있다면 위의 그림처럼 프로그램A가 모두 끝나고 프로그램 B가 실행됨예를 들면 음악 프로그램이 모두 끝난 뒤에야 워드 프로그램을 실행할 수 있다면 컴퓨터 ..

출처 : 인프런 - 김영한의 실전 자바 - 중급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 순회1) 직접 구현하는 Iterable, Iterator(1) 순회순회라는 단어는 여러 곳을 돌아다닌다는 뜻인데, 자료 구조에서의 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 뜻함다양한 자료 구조는 각각의 자료 구조마다 데이터를 접근하는 방법이 모두 다름배열 리스트는 index를 0부터 size까지 차례로 증가하면서 순회해야 하고, 연결 리스트는 Node.next를 사용해서 node의 끝이 null일 때 까지 순회해야 하는 것처럼 각 자료 구조의 순회 방법이 다름그렇기 때문에 여러 자료구조를 다루기 위해서는 각 자료 구조의 순회 방법을 배워야하고,..

출처 : 인프런 - 김영한의 실전 자바 - 중급2편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 컬렉션 프레임워크 - Map1) 소개(1) MapMap은 키-값의 쌍을 저장하는 자료구조임키는 맵 내에서 유일해야 하며 키를 통해 값을 빠르게 검색할 수 있음키는 중복될 수 없지만 값은 중복될 수 있으며 Map은 순서를 유지하지 않음HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공하며 각 구현체마다 다른 특성과 성능 특징을 가지고 있으며 이 중에서 HashMap을 가장 많이 사용함(2) Map 인터페이스의 주요 메서드메서드설명put(K key, V value)지정된 키와 값을 맵에 저장(같은 키가 있으면 값을 변경)putAll(Map..