분류 전체보기(55)
-
99클럽 4일차 TIL: Collectors.toMap()
#1. 오늘의 학습 키워드 자바스프링에서 특정 리스트에서 구조를 분해하여 Map 구조로 만들고 싶을 때 편하게할 수 있는 방법 기존에는 리스트에서 특정 요소를 뽑아서 Map 구조로 만들고 싶으면, Map 객체를 선언하여 초기화해준다음, .put() 메서드로 for 문으로 리스트의 요소를 일일이 순회하여 Map 객체안에 집어넣어줬다. 이때 toMap() 메서드를 사용하면 더욱 간편히 Map 객체를 생성할 수 있다는 피드백을 받았다. //기존 방식 Map map = new HashMap(); for (PersonDto dto : dtoList){ map.put(dto.getId(), dto); } //새로운 방식 Map map2 = dtoList.stream() .collect(Collectors.toMap..
2024.04.07 -
99클럽 3일차 TIL: JPA vs. MyBatis
#1. 오늘의 학습 키워드 자바스프링부트로 백엔드에서 데이터를 저장, 조회 시 사용할 프레임워크 Mybatis 와 JPA 중에 선택 현재 회사에서 웹 백엔드 개발 시 MyBatis 를 사용해 PostgreSQL 디비에 있는 데이터를 조회, 저장 등을 하고 있다. 직접 쿼리를 작성하여, 자유도가 높게 데이터에 접근을 하고 있다. 이제 회사에 JPA를 도입하려 한다. 이미 구현된 모든 MyBatis 프레임워크를 통한 데이터 접근 코드를 JPA를 바꾸는 것이 아닌, JPA 프레임워크를 통해 접근하는 것이 더 적합한 데이터들에 대해서만 리팩토링을 하려 한다. 그럼 어떤 것이 더 적합한 지 확인해보자 #2. 공부한 내용 MyBatis SQL Mapper 기술을 제공한다. 개발자가 작성한 SQL 실행 결과를 객체에..
2024.04.06 -
99클럽 2일차 TIL: Spring Boot 에러 핸들링
#1. 오늘의 학습 키워드자바스프링부트에서 커스텀 된 에러 메시지를 controller 로 보내고 싶을 때 방법api 호출 → controller → service로 이어질 때, 일반적인 exception 이 아닌, 사용자 request 의 논리적 오류를 핸들하고 싶을 때:이런 상황에서의 Exception은 RuntimeException 을 상속한 커스텀 Exception 클래스인 ApiException으로 던져진다.실질적인 오류가 아닌 논리 오류로 validation fail에 해당하기 때문에 이렇게 처리를 하였다.프론트엔드 단과 합의된 반환 코드(사용자의 입력값 오류 (클라이언트 error 4xx))와, 커스텀된 메시지로 오류를 throw 한다.public int method(Boolean isErr..
2024.04.05 -
99클럽 1일차 TIL: 쿼리 성능
#1. 오늘의 학습 키워드 SQL 쿼리에서 between 과 부등호의 성능 차이 myBatis 에서 쿼리로 어떤 날짜를 뜻하는 컬럼값을 가지는 테이블에서 날짜 범주 ( start_date 와 end_date ) 사이 조건에 부합하는 행들만 뽑아오고 싶을 떄: 아래와 같은 두 가지 방식이 있다. 이때 좋은 가독성을 가지는 코드는 between 을 사용한 조건문이지만, pr Review 로 부등호가 더 낫다는 피드백을 받았다. SELECT * FROM table_ WHERE date BETWEEN '20240101' AND '20241231' SELECT * FROM table_ WHERE date >= '20240101' AND date
2024.04.04 -
Java Spring - 공부 여정
HTML 삽입 미리보기할 수 없는 소스 #1. 스프링 / 스프링 부트란 스프링 자바 기반 웹 앱 프레임워크 스프링 구조 spring은 자바 객체와 라이브러리들을 관리해주며, 톰켓과 같은 WAS 가 내장되어 있어 자바 웹 앱을 구동할 수 있음 경량 컨테이너 (bean) 로 자바 객체를 spring 안에서 관리. 객체의 생성 및 소멸과 같은 생명 주기를 관리하며, spring 컨테이너에서 필요한 객체를 가져와 사용. spring의 특징 IOC / DI IOC - 제어의 역전 DI - 의존성 주입 어떤 객체를 사용하는 주체가 객체를 직접 생성하는 게 아니라 객체를 spring에서 생성해서 사용하려는 주체 객체에 주입시켜주는 방식. 직접 생성하는 것보다 외부에서 생성 관리하는 이 방식이 주체 객체와 대상 객체의..
2024.03.16 -
Git - 간단한 명령어 모음집
HTML 삽입 미리보기할 수 없는 소스 #0. 개요 본인을 위한 깃허브 명령어 모음집. 웬만한 것은 UI로 해결이 가능하지만 커맨드도 익숙해지면 편한 것 같다. #1. 기본 연결 git clone //링크 git config --global user.name git config --global user.email 커밋 UI로 해결 가능 //수정사항 전부 체크 git add . git commit -m "커밋 메시지" // 커밋 되었는지 확인 git status // 깃 푸시 git push origin 브랜치명 //(main / develop 등, 혹은 생략해도 됨) 원격과의 연동 주의! 여기서 확인하는 원격은 로컬에서 기억하고 있는 원격 브랜치다. 그렇기에 원격과 깃서버의 싱크를 수시로 맞춰주는 것이 ..
2024.03.15