본문 바로가기

전체 글

[JPA] JPA를 사용해야 하는 이유 JPA는 대안이다. 아주 훌륭한. 어떤 기술로부터 , 왜, 어떻게 JPA가 탄생하고 쓰이게 되었을까 에 대해 포스팅해본다. 01. SQL 중심적인 개발의 문제점 무한 반복, 지루한 코드 CRUD .. INSERT INTO , UPDATE , INSERT , DELETE ✋ 객체에 필드를 하나추가한다면? 모든 쿼리문에 필드를 추가해야한다. Member 객체를 조회할 때 속해져있는 Team 도 같이 조회해야할까? 02. 패러다임의 불일치 📍 객체 vs 관계형 데이터 베이스의 차이 1. 상속 관계형 DB에는 상속 개념이 존재하지 않는다. data를 저장하려면 객체를 분해하여 해당 테이블에 맞는 data를 각각 INSERT , INSERT , UPDATE ... 해주어야한다. 따라서 DB에 저장할 객체에는 상속.. 더보기
[210926] 백준 10814번 문제 풀이 / 나이순 정렬 문제의 핵心 1. 나이, 이름의 정보를 입력받은 뒤에 나이를 기준으로 정렬한다. 2. 카운팅 정렬을 활용하여 빠르게 정렬한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q1_10814 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); in.. 더보기
[클린코드 완독하기] 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.. 더보기
[클린코드 완독하기] Chapter 06 객체와 자료구조 Chapter 06. 객체와 자료구조로 데이터 표현하기 01 자료구조 vs 객체 자료구조 Data Structure 객체 Object 데이터 그 자체 비즈니스 로직과 과련 자료를 공개한다. 자료를 숨기고, 추상화한다. 자료를 다루는 함수만 공개한다. 변수 사이에 조회 함수와 설정 함수로 변수를 다룬다고 객체가 되지 않는다. (getter, setter) 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있다. 📍 자료구조 vs 객체 예시 (1) Vehicle '자료구조' 로 쓰일 때, public interface Vehicle { double getFuelTankCapacityInGallons( ); // 연료 탱크 용량(갤런 단위) double getGallonsOfGasol.. 더보기
[클린코드 완독하기] 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".. 더보기
[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 필드에 아래와 같은 어노테이.. 더보기