Til23 TIL : Lombok 알아보기 (12) 💻 Java Lombok이란? Java의 반복되는 메소드를 Annotation을 사용해 자동으로 작성해주는 라이브러리이다! 중요한 어노테이션 위주로 가볍게 살펴보자. 1️⃣ @Getter, @Setter 필드 혹은 클래스에 선언해서 사용한다. getField() (boolean 타입은 isField())와 setField() 메소드를 자동으로 생성 2️⃣ @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 생성자를 자동으로 생성해주는 어노테이션 @NoArgsConstructor : 파라미터가 없는 기본 생성자 @AllArgsConstructor : 모든 필드를 파라미터로 받는 생성자 @RequiredArgsConstructor : fina.. 2022. 9. 14. TIL : @CreatedDate, @CreationTimestamp (11) 🌞 Spring 엔티티 클래스에서 시간을 2가지 방법으로 관리한다. 바로 Hibernate에서 제공하는 @CreationTimestamp과 JPA에서 제공하는 @CreatedDate. 둘의 차이를 알아보자!! 1️⃣ @CreatedDate & @LastModifiedDate 사용하기 위해선 2가지 설정이 필요하다! SpringApplication에 @EnableJpaAuditing을 붙인다. 선언한 엔티티에 @EntityListeners(AuditingEntityListener.class)를 붙인다. 설정이 필요한 이유는 다음과 같다. JPA는 JPA 고유 메모리 공간(context)을 이용해서 엔티티 객체들을 관리한다. 관리되는 객체들이 변경되면 데이터에 반영되는 형식이다. 즉, 재사용하는 방식이다. .. 2022. 9. 12. TIL : git 사용하기 (10) 😋 git 1️⃣ 기본 git init : .git 이라는 하위 디렉토리를 만들어 새로운 git 저장소로 만든다. git status : git 저장소의 파일들의 상태를 체크 (Untracked, Unmodified, Modified, Staged) .gitignore : 배제할 요소들을 지정해놓은 파일 2️⃣ 저장 및 복구 git add : 상태가 변경된 파일을 staged 영역에 저장 git commit : add 명령어로 변경된 사항들을 저장 git log : commit 내역들을 확인 git reset --hard (커밋 해시) : 원하는 시점으로 돌아가고 이후 내역 지우기 git revert (커밋 해시) : 되돌릴 시점의 커밋 되돌리기, 내역은 살아있다. 3️⃣ 브랜치 git branch (이.. 2022. 8. 24. TIL : Kruskal(크루스칼) 알고리즘 (9) 💻 알고리즘 📌 크루스칼 알고리즘 프림 알고리즘과 같이 대표적인 최소 신장 트리(MST)를 찾는 알고리즘이다. 이 알고리즘의 특징과 동작 원리는 다음과 같다. ✔️ 특징 확인하는 그래프가 무방향 그래프이고 가중치가 존재한다. 가장 비용이 작은 것부터 확인하기 때문에 그리디 알고리즘의 일종이다. 순환(Cycle)이 있는지 확인하기 위해서 Union-Find 알고리즘을 사용한다. ✔️ 동작 원리 입력받은 간선들을 cost을 기준으로 정렬한다. 가장 작은 비용을 가진 간선을 확인한다. 사이클이 안 만들어지면 추가하고 만들어지면 다음 간선을 확인한다. 간선의 개수가 정점 - 1 개가 될 때까지 반복한다. # find function def find(x): if x != parent[x]: parent[x] = .. 2022. 8. 21. TIL : Two-Pointer 알고리즘 (7) 💻 알고리즘 ✔️ Two-Pointer 알고리즘이란? 리스트에 순차적으로 접근할 때 두 개의 점 위치를 기록하면서 처리하는 알고리즘! 간단히 말해서 포인터 두 개를 사용해서 데이터에 접근하겠다는 소리이다. 💡 특징 포인터 2개가 같은 방향으로 이동 → 특정 값과 일치하는 배열을 찾는 경우 포인터 2개가 양끝에서 출발해서 만남 → 특정 값과 일치하는 합을 찾는 경우 모든 범위를 확인하지 않고 O(n^2), 포인터가 각각 N번만 이동하기 때문에 O(N) ✔️ 포인터가 같은 방향으로 이동 def two_pointer(array, target): end, sum_ = 0, 0 cnt = 0 for start in range(len(array)): while sum_ < target and end < len(ar.. 2022. 8. 8. TIL : Union-Find 알고리즘, Disjoint Set 자료구조 (6) 📚 자료구조 ✔️ Disjoint Set이란? 여집합이 없는 부분집합을 저장하고 조작하는 자료 구조. 한 마디로, 서로소 집합 자료구조 세 가지 연산을 가진다. 초기화, make-set(x) : x를 유일한 원소로 하는 새로운 set을 만든다. 합치기, union(x, y) : x가 속한 set과 y가 속한 set을 합친다. 찾기, find(x) : x가 속한 set의 루트 노드 값을 리턴한다. 💡 특징 부모 노드가 자식 노드를 가리키는 트리 구조와 다르게 분리 집합은 자식 노드가 부모 노드를 가리킨다. 💻 알고리즘 ✔️ Union-Find 알고리즘이란? 그래프 알고리즘 중 하나로 두 노드가 같은 그래프에 속하는지 판별하는 알고리즘이다. 다시 말하면, disjoint set을 표현할 때 사용하는 알고리즘.. 2022. 8. 7. 이전 1 2 3 4 다음