본문 바로가기

Category List119

[클린코드 완독하기] Chapter 07 오류 처리 Chapter 07. 우아하게 예외 처리하기 01 예외 처리 방식 📍 오류 코드를 리턴하지 말고, 예외를 던져라 👎 Bad public class DeviceController { ... public void sendShutDown( ) { DeviceHandle handle = getHandle(DEV1); // Check the state of the device if ( handle != DeviceHandle.INVALID ) { // Save the device status to the record field retrieveDeviceRecord(handle); // If not suspended, shut down if ( record.getStatus( ) != DEVICE_SUSPENDED.. 2021. 9. 26.
[클린코드 완독하기] Chapter 06 객체와 자료구조 Chapter 06. 객체와 자료구조로 데이터 표현하기 01 자료구조 vs 객체 자료구조 Data Structure 객체 Object 데이터 그 자체 비즈니스 로직과 과련 자료를 공개한다. 자료를 숨기고, 추상화한다. 자료를 다루는 함수만 공개한다. 변수 사이에 조회 함수와 설정 함수로 변수를 다룬다고 객체가 되지 않는다. (getter, setter) 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있다. 📍 자료구조 vs 객체 예시 (1) Vehicle '자료구조' 로 쓰일 때, public interface Vehicle { double getFuelTankCapacityInGallons( ); // 연료 탱크 용량(갤런 단위) double getGallonsOfGasol.. 2021. 9. 23.
[클린코드 완독하기] Chapter 05 형식 맞추기 Chapter 05. 형식 맞추기 : 코드의 가독성에 필수적인 포맷팅 01 포맷팅이 중요한 이유 public void horriblyFormattedMethod(){ System.out.println("First line"); System.out.println("Second line"); System.out.println("Third line"); for( int i=0; i< 3; i++) System.out.println("number " + i ); } public void horriblyFormattedMethod(){ System.out.println("First line"); System.out.println("Second line"); System.out.println("Third line".. 2021. 9. 20.
[JPA] Proxy 프록시 01. Proxy 프록시가 필요한 상황 📍 Member 객체를 조회할 때 속해져있는 Team 도 같이 조회해야할까? public void printUserAndTeam(String memberId) { Member member = entityManager.find(Member.class, memberId); Team team = member.getTeam(); System.out.println("회원 이름" + member.getUserName()); System.out.println("소속팀" + team.getName()); } Team은 어쩌다 한 번 필요해서 회원을 조회할 때 마다 매번 같이 조회하는 것은 낭비인 상황이다. 이런 경우 보통 Member 클래스의 Team 필드에 아래와 같은 어노테이.. 2021. 9. 18.
[클린코드 완독하기] Chapter 04 주석 Chapter 04. 코드를 보조하는 주석 01 주석은 최대한 쓰지 말자 // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && employee.age > 65 )) // 의미있는 이름을 지으면 해결된다. if (employee.isEligibleForFullBenefits( )) 주석은 나쁜 코드를 보완하지 못한다. 코드에 주석을 추가하는 일반적인 이유틑 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는데 시간을 보내야한다. 의도를 정확히 표현할 수 있는 코드를 작성하면 주석이 필요없다. 코드의 변화에 따라가지 못하고, 주석은 방치된다. 복지혜택에 연금 혜택 기준이 추가된다면, 주석에 저절로 그 변.. 2021. 9. 18.
[클린코드 완독하기] Chapter 03 함수 Chapter 03. 함수 작성하기 01 SOLID 원칙 : 객체지향 설계의 5가지 원칙 * SOLID원칙 더 이해하기 -> https://6161990src.tistory.com/67?category=845791 [JAVA] 객체지향 5대원칙 / POJO JAVA 📌 SRP Single Responsibility Principle 단일 책임 원칙 클래스는 하나의 일에만 책임진다. 즉, 1개의 클래스에 하나의 역할만 가져야한다. 설계중인 프로그래밍에 클래스가 여러가지 역할을 가지고 있다 6161990src.tistory.com 1. SRP 단일 책임 원칙 클래스는 하나의 기능만 가지며, 어떤 변화에 의해 클래스를 변경해야하는 이유는 오직 하나뿐이어야한다. SRP 책임이 분명해지기 때문에, 변경에 의한 연.. 2021. 9. 17.