분류 전체보기
-
Thymeleaf 와 Enum 클래스를 사용해서, html radio 태그 제어Spring Boot 🍃 2023. 12. 6. 00:01
보고 배운 블로그 : taegyunwoo.github.io Lombok과 Thymeleaf 의존성을 추가한 상태라는 가정하에 진행 ✏️ Enum 클래스 정의 AnimalType @AllArgsConstructor @Getter public enum AnimalType { MONKEY("몽키 🐵"), PANDA("팬더 🐼") ; private String description; } Enum이 포함된 데이터 객체 생성 AnimalDto @Getter @Setter @ToString @Builder @AllArgsConstructor @NoArgsConstructor public class AnimalDto { private String animalId; private AnimalType animalType;..
-
스프링 부트 핵심 가이드 5주차: 9장책 공부/스프링 부트 핵심 가이드 2023. 12. 6. 00:01
📖 책 정보 모바일 가이드 연관관계 매핑 연관관계 매핑 종류와 방향 1:1 매핑 N:1 , 1:N 매핑 N:M 매핑 영속성 전이 9장 연관관계 매핑 종류와 방향 1:1 매핑 N:1, 1:N 매핑 N:N 매핑 영속성 전이 RDBMS를 사용할 때는 테이블 하나만 사용해서 애플리케이션의 모든 기능을 구현하기란 불가능하다. 대체로 설계가 복잡해지면 각 도메인에 맞는 테이블을 설계하고 연관관계를 설정해서 조인 Join 등의 기능을 활용한다. JPA를 사용하는 애플리케이션에서도 테이블의 연관관계를 엔티티 간의 연관관계로 표현할 수 있다. 1. 연관관계 매핑 종류와 방향 연관관계를 맺는 두 엔티티 간에 생성할 수 있는 연관관계의 종류는 다음과 같다. @OneToOne 1 : 1 @OneToMany 1 : N @Man..
-
그림으로 개념을 이해하는 알고리즘: 04. 퀵 정렬책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 1. 분할 정복 문제 해결 방법 중에서 가장 유명한 재귀적 기술인 분할 정복 dividid and conquer 전략! 분할 정복 전략은 문제에 바로 적용할 수 있는 단순한 알고리즘이 아니다. 문제를 풀기 위한 방법론에 가깝다. 문제를 분할 정복 전략으로 풀기 위해서는 다음의 두 가지 단계를 거쳐야 한다. 기본 단계를 해결한다. 이 부분은 가능한 한 간단한 문제이어야만 한다. 문제가 기본 단계가 될 때 까지 나누거나 작게 만든다. 2. 퀵 정렬 선택 정렬보다 훨씬 빠르고, 실제로 자주 사용되는 정렬 알고리즘이다. 예를 들면, C언어에는 qsort라는 함수가 있는데, 바로 퀵 정렬을 구현한 함수이다. 퀵 정렬도 마찬가지로 분할 정복 전략으로 만들어진 알고리즘이다. 배열을 정렬 해본다고 가정해보..
-
그림으로 개념을 이해하는 알고리즘: 03. 재귀책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 1. 재귀 재귀는 풀이를 더 명확하게 만들어 준다. 재귀를 쓴다고 성능이 더 나아지지는 않는다. 사실 반복문이 더 성능이 좋은 경우가 많다. 이에 대해 스택 오버플로우에 있는 레이 케드웰의 말을 인용해보면 다음과 같이 이야기 할 수 있다. " 프로그램에 반복문을 사용하면 프로그램의 성능을 향상시킬 수 있지만, 재귀를 사용하면 프로그래머의 능력을 향상시킬 수 있습니다. 상황에 따라 적절한 방법을 골라 사용하세요. " 대부분의 중요한 알고리즘들이 재귀를 사용하므로, 개념을 잘 이해하는 것이 중요하다. 2. 기본 단계와 재귀 단계 재귀 함수를 만들 때는 언제 재귀를 멈출지 알려줘야 한다. 그래서 모든 재귀 함수는 기본 단계 base case 와 재귀 단계 recursive case 라는 두 부분으..
-
그림으로 개념을 이해하는 알고리즘: 02. 선택 정렬책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 선택 정렬 아래와 같은 표가 있을 때, 🎶 PLAY COUNT PADIOHEAD 156 KISORE KUMAR 141 THE BLACK KEYS 35 NETURAL MILK HOTEL 94 BECK 88 THE STROKES 61 WILCO 111 해당 표를 선택 정렬 해본다면? 1. 리스트의 모든 항목을 살펴보고 가장 많이 연주된 가수를 찾아 새로운 리스트에 기록한다. SORTED PLAY COUNT PADIOHEAD 156 2. 그 다음으로 많이 들은 가수를 찾아서 반복한다. SORTED PLAY COUNT PADIOHEAD 156 KISORE KUMAR 141 이런식으로 반복하면 정렬 된 리스트를 얻을 수 있다. SORTED PLAY COUNT PADIOHEAD 156 KISORE KU..
-
그림으로 개념을 이해하는 알고리즘: 01. 이진 탐색, 빅오 표기법책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 모바일 가이드 01. 이진 탐색 코드로 구현해보기 실행 시간 02. 빅오 표기법 많이 사용하는 빅오 실행 시간의 예 외판원 문제 이진 탐색 입력 : 정렬된 원소 리스트 반환 : null 또는 원소 인덱스 원소 리스트의 중간 값과 찾을 값을 비교하여 중간 값이 더 작으면 왼쪽 구간을 탐색, 중간 값이 더 크면 오른쪽 구간을 탐색 한다. 찾을 값이 나올 때 까지 반복하는 방법! 42개의 원소가 들어있는 리스트에서 7을 찾고자 할 때 맨 처음 원소부터 하나씩 확인한다면 찾는데 7번의 탐색을 하겠지만, 이진 탐색을 사용한다면 4번의 탐색으로 찾을 수 있다. 1. 코드로 구현해보기 public Integer binarySearch(int[] arr, int item) { int low = 0; int..
-
Hello Coding 그림으로 개념을 이해하는 알고리즘 !책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖책 정보 알고리즘 공부를 다시 시작하기 위해 제일 쉬워보이는 책을 샀다! 하지만 소스 코드는 파이썬으로 작성되어있기 때문에 직접 구현이 필수인 책이다. 무리가 없을것으로 판단! 강의는 넘 어려웠기 때문에 쉬운 책으로 다시 시작해본다 🙈 책의 인트로에서 인상깊었던 내용 " 자신이 사용하고 있는 라이브러리가 어떤 핵심 아이디어 를 통해 만들어졌는지를 이해하는 것이 중요 " 그 핵심 아이디어가 알고리즘 인 것! 한번쯤은 들어봤던 말 같은데 뭔가 새롭게 느껴졌고 큰 깨달음이 느껴져서 적어본다 😊 화이륑 💪😬👍
-
Spring boot: JPA 연관관계 살펴보기 - 1:NSpring Boot 🍃 2023. 12. 6. 00:01
1:N 연관관계 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미한다. @OneToMany 어노테이션 이용! 실습 user 엔티티에 user_id로 연관지어진 user history 데이터 목록을 가져오기 엔티티 설계 User 엔티티 public class User extends BaseEntity { private String name; private String email; @OneToMany(fetch = FetchType.EAGER) @JoinColumn( name = "user_id" // 엔티티가 어떤 필드로 조인을 할지 지정해줌 , insertable = false, updatable = false // User 엔티티에서 UserHistory를 변경하지 못하도록..
-
Spring boot: JPA 연관관계 살펴보기 - 1:1Spring Boot 🍃 2023. 12. 5. 00:01
1 대 1 연관관계 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 말한다. 1:1 연관관계는 생각보다 실무에서 많이 사용된다. 실습 1: 단방향 book 테이블과 bookReviewInfo 테이블이 1:1로 조인하는 경우에 대해 실습해본다. bookReviewInfo 엔티티에 book 엔티티를 조인해서 데이터 확인 엔티티 작성 Book 엔티티 @ToString(callSuper = true) @Getter @Setter @SuperBuilder @NoArgsConstructor @AllArgsConstructor @Entity public class Book extends BaseEntity { private String name; private String category; p..
-
Spring Boot: Entity ListenerSpring Boot 🍃 2023. 12. 5. 00:01
Entity Listener 를 사용하여 User 테이블에 변경사항이 생길 경우 해당 히스토리를 저장하는 실습! 0. Entity Listener @Entity Listener JPA 엔티티에 대한 이벤트 리스너를 등록하는 어노테이션이다. 이 어노테이션을 사용하여 엔티티의 생명주기 이벤트를 수신하고 이벤트가 발생할 때 특정 동작을 수행할 수 있다. 아래 나타날 코드에서는 @EntityListener 어노테이션과, @EntityListener 어노테이션에 할당 할 UserEntityListener 클래스를 작성하고 테스트한다. 1. User, UserHistory Entity 작성 User.java 해당 엔티티가 영속화 될 때 UserHistory 엔티티를 동작시키는 이벤트를 발생시키기 위해 @Entity..