try-with-resources란? 자바에서 자원을 사용하는 블록을 처리할 때 자동으로 자원을 해제하는데 사용되는 구문으로 사용 방법은 아래와 같습니다. try (Resource resource = new Resource()) { // 자원 사용 코드 } catch (Exception e) { // 예외 처리 코드 } 이 때 try의 매개변수에서 선언할 수 있으려면 AutoClosable 인터페이스를 구현해야 합니다. 대부분의 자바 표준 라이브러리 클래스들은 AutoClosable 인터페이스를 구현하고 있습니다. 커스텀 클래스를 사용하려면 해당 클래스가 AutoClosable 인터페이스를 구현해야 합니다. AutoClosable 펼쳐 보기 /* * Copyright (c) 2009, 2013, Orac..
모든 소스 코드는 여기 서 확인 가능합니다. 문제 링크는 여기 있습니다. Problem A peak element is an element that is strictly greater than its neighbors. Given an integer array nums, find a peak element, and return its index. If the array contains multiple peaks, return the index to any of the peaks. You may imagine that nums[-1] = nums[n] = -∞. You must write an algorithm that runs in O(log n) time. Example 1: Input: nums = ..
문제 코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 괄호 회전하기 문제 설명 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {}는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A, B가 올바른 괄호 문자열이라면, AB도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다. 대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때..
이직 준비를 위해 알고리즘 문제 풀이 연습을 하다가 매 번 막히는 부분이 있습니다. 바로 조합(Combination)을 만드는 부분인데요, 어느 정도 시도해보다가 잘 안 되면 답을 베끼는 것이 몸에 배다보니 그 순간에만 대충 이해하고 넘어가고, 다음 번에 비슷한 유형의 문제를 만났을 때 어김 없이 문제를 풀지 못하는 저의 모습이 너무 한심해 기록으로 남겨보려고 합니다. 조합(Combination) 먼저 조합은 n 개중 r 개를 고르는 경우의 수를 구할 때 사용합니다. 수식으로는 이렇게 표현합니다. 재귀(Recursive) 알고리즘을 이용해 조합 구하기 앞서 살펴본 수식을 점화식 형태로 표현하기 위해 규칙을 찾아봅시다. 5개 중 3개를 선택하는 경우, 하나를 반드시 포함한 상태에서는 나머지 4개 중 2개만..
저는 취미생활(?)의 일환으로 네이버 지식인에 답변을 달아주고 있습니다. (현재 무려 바람신😎) 제가 대학생 때는 현재 창업한 회사에서 CTO로 활동하다가 모든 일을 맡아서 해야하는 실장이 되어버린 실력자 친구가 있었기 때문에 잘 모르면 무조건 그 친구에게 쪼르르 달려가서 질문을 하곤 했습니다. 하지만 그 친구를 만난 건 3학년 2학기.. 그 전까지는 고만고만한 친구들과 수업을 제끼고 당구를 치러 가는 게 더 좋았고, 그 친구들이 다 군대가고 나서는 혼자서 질문할 곳이 없어서 많이 힘들어하고 결국엔 휴학까지 했었습니다. 지식인에 올라오는 모든 질문이 저렇게 절박한 처지에 있는 사람이 올리는 글은 아니겠지만 혹시나 그런 처지에 있는 사람이 기댈 곳이 없어서 질문을 했을 수도 있기 때문에(?) 오지랖을 부려..
소스부터 보시죠! import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class FileDownloader { public static void main(String[] args) throws IOException { URL website = new URL("https://www.naver.com/"); Re..
모든 소스는 여기서 확인하실 수 있습니다. 커스텀 애노테이션 (@JacksonAnnotationInside) @JacksonAnnotationInside 애노테이션을 사용하여 커스텀 애노테이션을 정의할 수 있습니다. package io.lcalmsky.jackson.domain.annotation; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.lang.annotation.Retention; import java.l..
모든 소스는 여기서 확인하실 수 있습니다. @JsonCreator 역 직렬화에 사용되는 생성자나 팩토리를 조정할 수 있습니다. 필요한 대상 엔터티와 정확히 일치하지 않는 일부 JSON을 역 직렬화해야 할 때 유용합니다. 아래와 같은 JSON이 존재하고 { "id": 1, "theName": "beanName" } 대상 엔터티에는 "theName" 필드가 존재하지 않지만 엔터티 자체를 변경하고 싶지 않을 때 생성자에 @JsonCreator주석을 달고 @JsonProperty를 사용하여 해결할 수 있습니다. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jac..
모든 소스는 여기서 확인하실 수 있습니다. Jackson Serialization jackson이 제공하는 직렬화(serialization) 애노테이션에 대해 알아봅시다. @JsonAnyGetter Map 필드를 표준 property로 사용할 수 있는 유연성을 제공합니다. package io.lcalmsky.jackson_test.domain; import com.fasterxml.jackson.annotation.JsonAnyGetter; import java.util.HashMap; import java.util.Map; public class ExtendableBean { public String name; private Map properties; public ExtendableBean(Strin..
JPA는 다양한 매핑 어노테이션을 제공하는데 크게 4가지로 분류할 수 있습니다. 객체와 테이블 매핑: @Entity, @Table 키 매핑: @Id 필드와 컬럼 매핑: @Column 연관관계 매핑: @ManyToOne, @JoinColumn @Entity 테이블과 매핑할 클래스는 필수로 어노테이션을 붙여주어야 합니다. Attributes name: JPA에서 사용할 엔터티 이름, 보통 클래스 이름을 사용, 다른 패키지에 동명의 엔터티가 있다면 값을 지정하여 충돌을 피해야 함 주의사항 기본 생성자 필요(public or protected) final, enum, interface, inner class에는 사용 불가 저장할 필드에 final 사용 불가 public class Member { ... }-> ..
- Total
- Today
- Yesterday
- 스프링 부트 회원 가입
- 함께 자라기
- Spring Boot JPA
- Spring Boot
- 클린 아키텍처
- QueryDSL
- Spring Boot Tutorial
- 알고리즘
- spring boot jwt
- intellij
- 함께 자라기 후기
- Spring Data JPA
- spring boot app
- 스프링 부트 애플리케이션
- 스프링부트
- Jackson
- leetcode
- spring boot application
- @ManyToOne
- r
- 헥사고날 아키텍처
- 스프링 부트 튜토리얼
- JSON
- Linux
- Java
- 스프링 데이터 jpa
- 스프링 부트
- gRPC
- proto3
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |