본문 바로가기

스터디23

이펙티브 자바 스터디 - 16주차 스터디 깃허브 : https://github.com/SeolYoungKim/effective_java_study 5명이서 일주일마다 1인 1아이템 정리 및 발표 소스코드 깃허브 : https://github.com/SeolYoungKim/effective-java-example 이펙티브 자바 스터디 16주차 개인 주제 | 아이템 87. 커스텀 직렬화 형태를 고려해보라 개발 일정에 쫓기는 상황에서는 API 설계에 노력을 집중하는 편이 나을 것임 다음 릴리스에서 제대로 다시 구현하기로 하고, 이번 릴리스에서는 동작만 하도록 만들어 놓으라는 뜻 하지만, Serializable을 구현하고 기본 직렬화 형태를 사용한다면, 다음 릴리스 때 버리려 한 현재의 구현에 영원히 발이 묶이게 될 수 있음 대표적으로, Jav.. 2023. 2. 15.
이펙티브 자바 스터디 - 15주차 스터디 깃허브 : https://github.com/SeolYoungKim/effective_java_study 5명이서 일주일마다 1인 1아이템 정리 및 발표 소스코드 깃허브 : https://github.com/SeolYoungKim/effective-java-example 이펙티브 자바 스터디 15주차 개인 주제 | 아이템 78. 공유 중인 가변 데이터는 동기화해 사용하라 synchronized 키워드 해당 메서드나 블록을 한번에 한 스레드씩 수행하도록 보장 이 객체에 접근하는 synchronized 키워드를 가진 메서드는 그 객체에 락을 건다. 객체를 하나의 일관된 상태에서 다른 일관된 상태로 변화시킴 동기화에 대한 오해 동기화를 제대로 사용하면 어떤 메서드도 이 객체의 상태가 일관되지 않은 순간.. 2023. 1. 29.
이펙티브 자바 스터디 - 14주차 스터디 깃허브 : https://github.com/SeolYoungKim/effective_java_study 5명이서 일주일마다 1인 1아이템 정리 및 발표 소스코드 깃허브 : https://github.com/SeolYoungKim/effective-java-example 이펙티브 자바 스터디 14주차 개인 주제 | 아이템 76. 가능한 한 실패 원자적으로 만들라 가능한 한 실패 원자적으로 만들라 실패 원자적인 특성 호출된 메서드가 실패하더라도 해당 객체는 메서드 호출 전 상태를 유지해야 하는 특성 실패 원자적이지 않은 경우를 구현해보자 public class Main { private static class Counter { private int count = 0; public void addCo.. 2023. 1. 24.
이펙티브 자바 스터디 - 13주차 스터디 깃허브 : https://github.com/SeolYoungKim/effective_java_study 5명이서 일주일마다 1인 1아이템 정리 및 발표 소스코드 깃허브 : https://github.com/SeolYoungKim/effective-java-example 이펙티브 자바 스터디 13주차 개인 주제 | 아이템 70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라 자바가 문제 상황을 알리는 타입(throwable) 검사 예외 런타임 예외 에러 검사 예외 public static void checkedException() throws IOException { throw new IOException(); } public static void main(St.. 2023. 1. 15.
리얼 월드 스터디 회고 - 7 이번주는 댓글 구현이라, 구현 자체는 어렵지 않았다. 그래도 아주 핵심적인 이야기가 오고갔는데, 너무 스프링 시큐리티에 매몰되어 “기본을 놓치고 있지는 않은지” 에 대한 내용이었다. 해당 내용에 대해, 나의 몇 가지 반성 포인트가 있다. 반성 포인트 @SpringBootApplication 애노테이션의 원리를 설명할 수 있는가? 대답은 No다. 큰 그림과 무슨 역할을 하는지는 알지만, 얘가 어떻게 동작하는지는 설명할 수 없다는게 내 현 주소였다. Spring, SpringBoot의 기본적인 아키텍처를 알고있는가? 정말 기본적인 아키텍처만 알고있다(누구나 배우는 그런 아키텍처). CGLib, JDK 다이나믹 프록시 등 AOP 관련 내용은 잘 알지 못한다. 이 부분은 리플렉션이 관여되어 있을 것이므로, 리플.. 2023. 1. 8.
이펙티브 자바 스터디 - 12주차 스터디 깃허브 : https://github.com/SeolYoungKim/effective_java_study 5명이서 일주일마다 1인 1아이템 정리 및 발표 소스코드 깃허브 : https://github.com/SeolYoungKim/effective-java-example 이펙티브 자바 스터디 12주차 개인 주제 | 아이템 63. 문자열 연결은 느리니 주의하라 문자열 연결 연산자 +로 문자열 n개를 잇는 시간은 n^2에 비례한다. 문자열은 불변이기 때문에, 두 문자열을 연결할 때 양 쪽의 내용을 모두 복사해야 하기 때문 String 대신 StringBuilder를 사용하자 문자열 연결 성능이 아주 크게 개선된다. StringBuilder sb = new StringBuilder(); sb.appen.. 2023. 1. 6.