본문 바로가기

자바10

[Java] Thread 클래스와 ThreadPoolExecutor 클래스 단순 Thread 클래스를 사용하게 되면? 자바8 기준 사용자 레벨 스레드를 사용하지 않음 JVM을 통해 OS의 시스템콜을 호출하여 커널 스레드를 1:1로 할당 받음 ⇒ 스레드 생성 비용이 너무 크다!!!!!!!!!!!!!!!!!!!!! (스레드 맵핑과 관련한 글은 아래 글에서 확인하실 수 있습니다.) 2023.09.10 - [컴퓨터공학/운영체제] - [운영체제?] 스레드의 종류(하드웨어스레드, 커널레벨스레드, 유저레벨스레드) 헉! 그럼 자바에서 스레드를 사용하면 비효율적이네요! 하지만 당근빠따루 스레드풀을 사용할 수 있음 concurrent 패키지의 ThreadPoolExecutor 클래스로 사용 ⚠️ Executors.newFixedThreadPool(100)로 생성 시 작업 큐 사이즈가 Intege.. 2023. 9. 10.
Java JVM 아키텍쳐 (1) 먼저 Virtual Machine 이란? 수업을 듣다보면 가상 머신을 다뤄 본 적이 있을 것이다. 자신의 하드웨어 위에 또 다른 OS(Guest OS)를 실행하게 해주는 것이 VM의 역할이다. 그런 VM이 자바에도 있다! 연관해서 생각해 본 적이 없었는데, 생각해보니 JVM의 VM이 virtual machine 이다. JVM은 무엇인가? JVM은 추상 머신이다. 자바 바이트 코드를 런타임 환경에서 실행할 수 있게 해준다. JVM은 많은 하드웨어나 소프트웨어에서 사용 가능하다. Implementation(JRE, Java Runtime Environment)에 따라서 JVM 동작 알고리즘을 선택할 수 있다. 무슨일을 하는가? VM인만큼 스스로 메모리 관리를 한다. Loads code Verifies cod.. 2023. 7. 16.
[서평 23년-21] 스프링 부트 실전 활용 마스터 독서기간_2023년 2월 26일 ~ 2023년 3월 저자_그렉 턴키스트 출간일_2021년 5월 28일 들어는 보았나 리액티브 스트림 개발. 입문자에겐 절대 비추천하는 책이다. "실전 활용"이 제목인만큼 일반적인 Spring Boot를 공부하지 않는다. WebFlux라는 라이브러리를 이용해 스트림 통신 개발을 다룬 책이다. 마치 Spring Boot가 리액티브 패러다임이 기본인 것처럼 알려준다. 친절한 설명과 따라 치기 쉬운 예제 덕분에 많은 공부가 되었다. 현직의 ㅎ도 시작 못한 백수지만 현직자가 공부하기 좋은 책같다. 음 그냥 읽어보세요! 자신이 얼마나 무지한지를 깨닫게 됩니다. 개발에 발을 담굴수록 느끼는 거지만 끝이 없다. 취업해서도 꾸준히 책 읽고 공부하는 개발자가 되어야지. 하고 싶은 건 많은데.. 2023. 5. 15.
[서평 23년-20] 자바와 JUnit을 활용한 실용주의 단위 테스트 독서기간_2023년 2월 중순? 저자_제프 랭어, 엔디 헌트, 데이브 토마스 출간일_2019년 7월 3일 Java, JUnit만으로 테스팅을 공부할 수 있는 아주 좋은 책이다. 작년 10월쯤 우아한테크코스를 준비하면서 단위 테스트에 제대로 입문했었다. 우테코 이전에는 Spring Boot 공부하면서 테스트 코드를 작성하는데, Mock과 Inject의 개념이 잡혀있지 않은 채로 작성하려니 머리가 깨질 것 같았었다. (그때 Mock이란 개념을 처음 알긴 했지만...) 구글링해가면서 이렇게 로직을 테스트하는구나... 어림짐작하면서 코딩했었다. 남들이 when, then, mock 쓰니까 이렇게 하나보다...하고 이 책은 공채도 끝나고, 할 일도 없어서 읽기 시작했다. 그런데 굉장히 양질의 정보를 얻을 수 있었.. 2023. 5. 6.
TDD 테스트 주도 개발 Test Driven Development 1. TDD의 주된 이익 코드를 깨끗하게 유지하도록 치열하게 싸우지 않으면 시스템은 점점 퇴화한다. 코드를 재빠르게 추가할 수는 있지만 처음에는 good code 라기보다는 not so great code 일 가능성이 높다. TDD를 잘 따른다면 구현하는 실질적인 모든 사례에 대해 단위테스트를 작성하게 된다. 단위 테스트는 코드를 지속적으로 발전시킬 수 있는 자유를 준다. 작성하려는 코드가 있다면 항상 먼저 어떻게 그 코드를 테스트할지 고민해야 한다. 작성할 코드를 묘사하는 테스트를 설계해야 한다. 이러한 역 방향 접근법은 단위 테스트 전략의 핵심이다. 2. 단순하게 시작 TDD는 세 부분의 사이클로 구성된다. - 실패하는 테스트 코드 작성하기 - 테스트 통과시.. 2023. 2. 19.
코드 테스트에 관한 약어(FIRST, Right-BICEP, CORRECT) FIRST : 좋은 테스트 조건이란? [F]ast 테스트는 빠르게 동작해야 한다. 느린 것에 의존하는 코드를 최소화하자. [I]solated 직접적 혹은 간접적으로 테스트 코드와 상호 작용하는 코드가 많을수록 문제가 발생할 소지가 늘어난다. 다른 단위 테스트에 의존하지 않는 결합도를 낮은 테스트 코드를 작성하자. 각 테스트가 작은 양의 동작에만 집중하면 독립적인 테스트 코드로 유지하기 쉽다. 테스트 코드에도 단일 책임 원칙을 적용하자. 테스트 메서드가 하나 이상의 이유로 깨진다면 테스트를 분할하는 것을 고려하자. [R]epeatable 테스트는 실행할 때마다 결과가 같아야 한다. 반복 가능한 테스트를 만들려면 직접 통제할 수 없는 외부 환경에 있는 항목들과 최대한 격리시켜야 한다. [S]elf-valid.. 2023. 2. 16.
모던 자바 인 액션 독서기간_2022년 11월 11일 ~ 11월17일 저자_게이브리얼 우르마, 마리오 푸스코, 앨런 마이크로프트 자바 개발자가 되려면 자바8에서 무엇이 혁신적으로 변화했는지를 알아야 된다. Stream의 등장으로 자바의 입지가 단단해졌다. 구글링으로 알음알음 알던, 구멍 숭숭 뚫린 Stream 사용법을 책을 읽고 나서야 정확히 알 수 있었다. 사용하지 않았던 메서드들의 존재와 시그니처를 알 수 있었다. Stream 외에도 병렬 데이터 처리와 컬렉션 API, 비동기를 위한 클래스 등 유용하고 강력한 자바 문법도 많이 나온다. 써보지 않은 기능들로 이해가 완벽히 되지 않았다. 그래도 개념을 알고 있다는 것이 중요하다고 생각한다.ㅎ 조금 더 친절한 책이다. 퀴즈와 예제에 주석까지 있어서 이해가 더 쉬웠다. '이펙.. 2022. 11. 20.
이펙티브 자바 독서기간_2022년 11월 1일 ~ 7일 저자_조슈아 블로크 더 배울 게 없다고 자만하여 매너리즘이 왔던 방황하던 나에게 길을 안내해준 책이다. 별 것도 아니었던, 자만하는 나의 콧대를 짓누르고 "닌 개못해 그리니 계속 공부해"를 알려주었다. 객체지향을 고려한 코드를 작성하는 지침서이다. 끝없는 객체지향! 난 공부할 것 태산이다. 근데... 재밌다...!!!!!!!!!!!!!!!!! 자바의 기본 개념이 없다면 어려운 책이다. 물론 나도 어려웠다ㅎㅎ 책 속 예제 코드가 모두 흑백색이라 코드를 보고 이해하기 힘들었다. 그럼에도 매우 도움을 준 책이다! 유지보수와 재사용성, 성능, 명료성을 고려한 코드가 무엇인지 알려준다. 굉장히 실무 중점적인 책이다. 책을 읽기와 동시에 우아한 테크 코스 5기 프리코스를 같.. 2022. 11. 12.