생각정리 (200) 썸네일형 리스트형 한 주 정리 : 24_04 2주차 진행 내용 엔티티 간의 연관관계가 다양하게 설정되어 있을 경우, 조회 시에 발생하는 쿼리를 최적화해서 N + 1문제와 성능을 향상할 수 있는 방법을 정리하고 Spring Data JPA을 사용하였지만, 공통 인터페이스를 메서드 이름으로 쿼리를 생성하는 위주로의 활용을 하여서 Spring Data JPA의 다양한 활용방법을 알아보고 이해할 수 있도록 하였습니다. 추가적으로 실무에서도 JPA나 Spring Data JPA중 하나만을 사용하는 것이 아닌 같이 사용하면서 적합한 곳에 사용할 수 있도록 파악해 이해력을 높일 수 있도록 하였습니다. 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 주문 조회 API를 xToOne 연관관계를 기준으로 엔티티를 DTO로 변환하는 방법과 JPA에서 DTO.. [JAVA 알고리즘]BAEKJOON 3661번 생일 선물 생일 선물 문제 설명 오늘은 선영이의 생일이다. 선영이의 친구들은 선영이에게 생일선물로 스타크래프트 2를 사주기로 했다. 선영이의 친구들은 비용을 공정하게 내기로 결정했다. 친구들 중 일부는 다른 친구들보다 돈이 많기 때문에, 각자 낼 수 있는 금액보다 더 많은 금액은 내지 않기로 했다. 모든 사람이 내는 돈은 1원의 배수이다. 즉, 분수로 낼 수는 없다. 친구들은 자신이 낼 수 있는 최대 금액을 적어서 냈다. 이제 이 정보를 이용해서 각자 낼 금액이 얼마인지 계산해보려고 한다. 공정하게 선물 비용을 내려면, 선물 금액의 1/n과 각 사람이 낸 금액의 차이의 최댓값을 최소로 해야 한다. 만약, 같은 경우가 나오는 경우에는 두 번째 차이의 최댓값을 최소로 해야 하고, 이런 식이다. 각 사람이 낼 수 있는 .. 한 주 정리 : 24_04 1주차 진행 내용 JPA를 바로 JDBC 템플릿으로 예전에 사용해 보고 바로 Spring Data JPA를 이용해서 데이터베이스를 설계하고 사용을 하다 보니 편리함이 매우 커 사용하기에는 편했습니다. 하지만 점차 쿼리를 최적화 하는 단계에서는 영속성 컨텍스트에 대한 이해가 부족했고, 쿼리를 직접 작성해서 사용하기 위해서는 사용하는 문법에 차이가 발생하고 JPA와 Spring Data JPA의 차이에서도 사용하는데 문제가 생겼는데, 문제가 발생하는 하나하나에서 찾아보기보다 처음부터 한번 내용을 이해를 잡고 가기 위해서 JPA에 대한 전반적인 내용을 사용해 보면서 정리하는 시간을 가졌습니다. 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의 듣기 회원, 상품, 주문 도메인이 있는 요구사항을 분석하고.. JUnit5 예외 처리 테스트 강의 진행 중 JUnit 버전 간에 예외 처리 방식의 차이가 있다. JUnit4에서의 예외 처리 테스트 JUnit4에서는 Test 애너테이션에 expected 속성을 이용해서 해당 테스트가 지정한 예외처리 발생에 따라 테스트 유무를 알 수 있는 방법을 사용해 예외 처리 테스트를 진행한다. @Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception { // given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); // when memberService.join(me.. 한 주 정리 : 24_03 4주차 강의 학습 강의 스프링 핵심 원리 - 기본편 모든 개발자를 위한 HTTP 웹 기본 지식 학습 목표 스프링 핵심 원리인 스프링 컨테이너, 의존관계에 관한 이해력을 높이고 객체 지향 설계 원리 정리 및 웹 관련 CS 정리 얻어 간 내용 객체 지향 설계의 5원칙 SOLID : SOLID원칙을 하나하나 개념적으로만 알고 있었던 부분을 실제 서비스를 이용해서 왜 해당 원칙을 지켜야 하고 안 지킬 경우의 어떻게 문제가 되는지 해당 문제를 어떤 식으로 해결해 원칙을 지켜나갈 수 있는지를 알 수 있었습니다. 스프링 빈의 이해 : 스프링 빈을 어떻게 생성하고 작동하는 지를 자바 문법으로만 구현을 해보면서 정확히 어떤 식으로 작동하고 해당부분을 스프링이 자동으로 처리해주고 있느지를 알 수 있어 스프링 컨테이너를 활용해 빈.. [JAVA 알고리즘]BAEKJOON 9251번 LCS LCS 문제 설명 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 제한사항 시간 제한 0.4초 입출력 예 input return ACAYKP CAPCAK 4 문제 분석 문자열 2개가 주어지고 두 문자열을 비교를 하면서 순서가 섞이지 않게 연속된 같은 문자의 길이를 구해야 한다. 문자열은 최대 1000글자로 이루어져.. 한 주 정리 : 24_03 3주차 최근에 다양한 스택들을 배우기 위해서 Kafka와 Redis에 대해 추가적인 공부를 하던 중, 모의면접을 하면서 먼가 지금 상태에서 새로운 스택을 쌓는 것이 아니라 기존에 사용하는 Java와 Spring, DB 등 기본적인 부분들에 CS지식과 정확한 개념들을 확립을 시키고 기본적인 Spring을 다루는 것부터 시작해 기본을 탄탄하게 만들면 이후에 스택에 대한 이해가 더 올라갈 수 있을 듯하여 다시 시작하는 마음으로 돌아가보기로 하였다. 다른 여러 강의도 많이 보고 프로젝트들을 만들어보면서 사용하였지만, 정확히 왜? 어떻게? 에대한 부분에 정확히 해소가 덜 된 부분들이 있어 매번 자바를 하면 들어봐야 한다는 김영한님의 강의로 기반을 잡아보기로 하였다. 전 주에 스프링 입문 강의를 들으면서 의관관계 설정에 .. 스프링 의존성 주입 스프링 빈을 등록하는 2가지 방법 💡 컴포넌트 스캔의 범위는 SpringBootApplication이 있는 패키지의 하위 패키지안에서만 기본적으로 유효하고 이상으로는 별도의 설정이 필요하다. 컴포넌트 스캔과 자동 의존관계 설정 controller, service, repository 등 conponent 어노테이션을 가지고 있는 어노테이션을 사용한 등록 Autowired를 이용해 자동 의존관계 설정 (스프링 빈에 등록되지 않으면 사용할 수 없다.) 기본적으로 싱글톤 패턴으로 등록된다. (특수한 경우 별로 설정으로 싱글톤이 아니게 설정가능) @Repository public class MemoryMemberRepository implements MemberRepository { } 자바 코드로 직접 스프링.. 이전 1 2 3 4 5 6 ··· 25 다음