[TIL](2024)09.30 ~ 10.04
·
Java & Spring/TIL
09월 30일 (월)- 오늘 한 일2차 기술면접 준비Docker 학습10월 01일 (화)- 오늘 한 일프로그래머스 코딩테스트 1문제 진행 및 회고 GithubActions / CloudType를 통한 CI/CD 실습10월 02일 (수)- 오늘 한 일JPQL 학습 및 실습개인과제 진행10월 04일 (금)- 오늘 한 일QueryDls 학습 및 실습개인과제 진행
Docker란 무엇인가?
·
Docker
□ CI / CD에 대해CI : Continuous Integration의 약자로 지속적인 통합을 의미각 개발자들이 github등의 관리시스템에 코드를 통합통합된 코드를 빌드 및 테스트 진행버그 발생 시 버그를 해결→ 빌드 및 테스트를 사람이 매번 할 필요없이 프로그램이 실행하고, 발생한 버그를 사람이 수정CD : Continuous Deployment(Delivery)의 약자로 지속적인 제공을 의미기본 개념지속적인 통합자동화된 빌드와 자동화된 테스트를 제공안정적인 코드를 빠르게 제공할 수 있는 밑거름지속적인 서비스 제공지속적인 베포베포를 자동화하여 베포 시간을 단축하고 코드 결과물을 빠르게 지속적으로 제공단계코드 작성 : 개발자들은 소스 코드를 작성하고 저장소에 업로드빌드 : 저장소에서 최신 소스 코드..
52일차 - 알고리즘 코드카타(실패)
·
Java & Spring/코딩테스트
- 회고84. 괄호 회전하기 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(String s) { int answer = 0; List open = Arrays.asList('(', '{', '['); List close = Arrays.asList(')', '}', ']'); // s의 길..
기술면접 준비(2)
·
이론공부
1. JPA에서 Lazy Loading과 Eager Loading의 차이점과 각각의 장단점Lazy Loading (지연 로딩): 연관된 엔티티나 컬렉션을 실제로 사용할 때 로드합니다. 즉, 객체를 처음 불러올 때는 연관된 엔티티를 로드하지 않고 필요할 때 데이터를 가져옵니다.장점:처음 데이터 로드 시 불필요한 데이터를 가져오지 않으므로 성능 최적화에 유리함.메모리 사용량을 줄일 수 있음.단점:필요한 시점에 데이터베이스에 추가 쿼리를 실행하기 때문에 성능 문제가 발생할 수 있음 (특히 N+1 문제).즉시 데이터를 사용해야 하는 경우 사용하기 어려움.Eager Loading (즉시 로딩): 엔티티를 조회할 때 연관된 모든 엔티티를 함께 조회합니다.장점:처음 로드 시 관련된 모든 데이터를 한 번에 가져오기 때..
JPA - 쿼리 파일 만들기
·
Java & Spring/Spring
□ 쿼리 파일 만들기(QuaryMapper)- MyBatisRowMapper가 가지고있는 단점인 "반복되는 코드"를 줄이고 "함께있는 프로그램 코드와 쿼리 코드를 분리하여 관리"하고 싶은 니즈를 반영하여 탄생반복적인 JDBC 프로그래밍을 단순화SQL 쿼리들을 XML파일에 작성하여 코드와 SQL을 분리JDBC로 처리하는 코드의 설정(Connetcion)부분을 줄이고 실제 SQL문에 연결함으로서 빠른 개발이 가능하게 한다(SQL Mapper 특징)MyBatis 코드는 map 인터페이스와 SQL 쿼리와 ResultSet 매핑을 위한 xml 및 annotation을 사용한다.객체 자체보다 쿼리에 집중할 수 있다.SqlSesstion Factory Builder (1), (2), (3)MyBatis 설정 파일을 ..
JPA - 데이터베이스와 SQL
·
Java & Spring/Spring
□ 데이터베이스(H2)- DB(H2) 사용 방식 3가지Server Mode직접 엔진을 설치하여 사용하는 방식.애플리케이션과 상관 없는 외부에서 DB 엔진이 구동된다.데이터가 애플리케이션 외부에 저장되므로 애플리케이션을 종료해도 데이터가 사라지지 않는다.In-memory Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식.build.gradle 및 application.properties 설정을 통해 실행 가능하다.애플리케이션을 실행하면 DB 엔진이 함께 실행되고 애플리케이션을 종료하면 DB 엔진이 함께 종료된다.데이터가 애플리케이션의 메모리에 저장되기 때문에 애플리케이션을 종료하면 데이터가 사라진다.Embedded Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식.b..
[TIL](2024)09.23 ~ 09.27
·
Java & Spring/TIL
09월 23일 (월)- 오늘 한 일메뉴 코드 수정테스트코드 작성 및 테스트코드 학습09월 24일 (화)- 오늘 한 일프로젝트 마무리시연영상 제작09월 25일 (수)- 오늘 한 일프로젝트 발표- 회고이번 프로젝트를 진행하며서 JWT의 흐름과 Cookie에 담아 사용하는 것을 팀원이 구현하고 공유해줘서 조금 더 알게되었다.팀에서 Redis를 사용하여 장바구니 구현(TTL)을 시도해보았으나 아쉽게 성공하지못했다.SQLDelete를 사용하여 논리적 삭제를 진행하는 방법을 이번 프로젝트에서 구현해보았다.Test코드 작성 시 Mock생성등 테스트 진행하는 방법이 조금 익숙해졌다, 반복숙달해야겠다.09월 26일 (목)- 오늘 한 일JPA 데이터베이스 와 SQL 학습09월 27일 (금)- 오늘 한 일JPA 쿼리 파일 ..
테스트코드 작성에 사용되는 메서드 및 애노테이션(1)
·
Java & Spring/Spring
1.  @Mock역할: 실제 객체의 **모의 객체(Mock Object)**를 생성합니다. 모의 객체는 실제 동작을 하지 않고, 정의한 대로 동작하도록 설정할 수 있습니다.사용 목적: 외부 의존성을 실제로 동작하지 않게 하고, 테스트하고자 하는 클래스의 동작만 확인할 수 있도록 하기 위해 사용합니다.예를 들어, 데이터베이스 호출이나 외부 서비스 호출을 모킹하여 테스트의 속도를 높이고, 외부 의존성 없이 순수하게 비즈니스 로직만을 테스트할 수 있습니다. 2.  @InjectMocks역할: @Mock으로 생성된 모의 객체를 해당 클래스의 의존성으로 주입합니다. 즉, 테스트할 클래스의 인스턴스를 생성하고, 이 클래스가 의존하는 다른 객체를 모킹된 객체로 자동으로 주입해줍니다.사용 목적: 테스트하려는 클래스의 ..
[TIL](2024)09.19 ~ 09.20
·
Java & Spring/TIL
09월 19일 (목)- 오늘 한 일팀 프로젝트 발제 및 팀 회의, 배달 어플 만들기배달 어플 내 메뉴 생성 구현 담당09월 20일 (금)- 오늘 한 일메뉴 구현 CRUD 구현- 회고메뉴가 가게부분과 연관관계가 걸려있어 상상?하면서 구현해야해서 조금 어려웠다.
43일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고83. 귤 고르기 : https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(int k, int[] tangerine) { Map map = new HashMap(); for (int i : tangerine) { if(!map.containsKey(i)){ map.put..