소스 코드는 여기 있습니다. 문제는 여기 있습니다. Problem Given an array nums of integers, return the length of the longest arithmetic subsequence in nums. Note that: A subsequence is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements. A sequence seq is arithmetic if seq[i + 1] - seq[i] are all the same value (for 0
재밌는 글이 있어 공유합니다. 버그는 가끔 믿기 힘든 증상을 보일 때가 있습니다. 아래는 웹에서 수집한 이야기들을 시리즈로 번역해 공유할 예정입니다. 차가 바닐라 아이스크림 알레르기가 있어요 명백한 것이 항상 해결책은 아니며 사실이 아무리 믿을 수 없더라도 여전히 사실이라는 것을 이해하는 엔지니어를 위해... 제너럴 모터스의 폰티악 사업부에서 불만이 접수되었습니다. "이것은 저가 두 번째로 여러분에게 편지를 쓰는 것이고, 제가 미친 사람처럼 들릴 것 같아서 여러분이 답장하지 않는 것은 이해합니다만, 저희 가족은 저녁 식사 후에 매일 디저트로 아이스크림을 먹는 전통이 있습니다. 하지만 어떤 종류의 아이스크림을 먹을지는 매일 밤 우리 가족이 투표해서 결정하고, 저는 차를 타고 가게에 가서 아이스크림을 사오곤..
try-with-resources란? 자바에서 자원을 사용하는 블록을 처리할 때 자동으로 자원을 해제하는데 사용되는 구문으로 사용 방법은 아래와 같습니다. try (Resource resource = new Resource()) { // 자원 사용 코드 } catch (Exception e) { // 예외 처리 코드 } 이 때 try의 매개변수에서 선언할 수 있으려면 AutoClosable 인터페이스를 구현해야 합니다. 대부분의 자바 표준 라이브러리 클래스들은 AutoClosable 인터페이스를 구현하고 있습니다. 커스텀 클래스를 사용하려면 해당 클래스가 AutoClosable 인터페이스를 구현해야 합니다. AutoClosable 펼쳐 보기 /* * Copyright (c) 2009, 2013, Orac..
PhantomReference란? PhantomReference는 Java의 Reference 클래스의 하위 클래스 중 하나로, Java 객체의 참조를 간접적으로 유지하면서 해당 객체가 가비지 컬렉션될 때 알림을 받을 수 있도록 해주는 클래스입니다. PhantomReference를 생성할 때는 해당 객체의 참조와 함께 ReferenceQueue를 함께 전달해야 합니다. 이렇게 생성된 PhantomReference는 객체의 참조를 간접적으로 유지하지만, 실제 객체를 참조하는 것은 아닙니다. 그러므로 해당 객체는 가비지 컬렉션 대상이 됩니다. PhantomReference가 알림을 받기 위해서는 해당 객체가 가비지 컬렉션될 때, PhantomReference가 참조하는 객체와 함께 ReferenceQueue..
WeakReference란? Java에서 WeakReference는 가비지 컬렉터에 의해 강제로 수집될 수 있는 참조를 나타내는 객체입니다. 일반적으로 Java에서는 객체에 대한 참조가 있는 경우 해당 객체는 메모리에서 수집되지 않습니다. 하지만 WeakReference는 약한 참조를 제공하여 객체가 메모리에서 수집되도록 허용합니다. WeakReference를 사용하면 객체가 더 이상 사용되지 않는 경우 자동으로 메모리에서 제거됩니다. 이는 객체의 수명 주기를 추적하고 메모리 누수를 방지하는 데 유용합니다. 예를 들어 캐시나 캐시 라인에 저장된 객체는 더 이상 필요하지 않을 때 메모리에서 제거되어야 합니다. 이때 WeakReference를 사용하면 캐시에서 제거되는 객체의 메모리를 즉시 회수할 수 있습니..
IntelliJ IDEA를 이용해 코딩하다보면 변수나 메서드에 어디서 사용되는지 알려주는 usage, 상속 여부를 알려주는 inheritor, 관련 코드에 문제가 있음을 나타내주는 related problem, 작성자를 알려주는 code author등의 힌트를 볼 수 있습니다. 저는 개인적으로 코딩할 때 주석을 잘 사용하는 편은 아니지만 주석과 같이 사용하게 되면 상당히 거슬리기도 합니다. 게다가 git과 관련된 툴을 사용하하면 힌트를 표시하는 부분이 더욱 더 지저분해져서 코드를 보는 가독성이 떨어질 때가 있습니다. 이 외에도 상당히 많은 부분에서 힌트를 제공합니다. 이 중 파라미터 이름을 알려주거나 메서드 체이닝에서 어떤 타입을 반환했는지 바로바로 보여주는 힌트는 같은 라인에 표시되기 때문에 코딩할 때..
JPA에서 @Query 애너테이션을 사용할 때, 일반적으로 @Param 애너테이션을 사용하여 파라미터명과 매핑할 이름을 지정해주어야 합니다. 하지만 다음과 같은 경우에는 @Param을 생략할 수 있습니다. 파라미터명과 매핑할 이름이 동일한 경우 예를 들어, 다음과 같이 파라미터명과 매핑할 이름이 모두 "name"인 경우에는 @Param을 생략할 수 있습니다. @Query("SELECT u FROM User u WHERE u.name = :name") User findByName(String name); 파라미터가 하나인 경우 파라미터가 하나뿐인 경우에는 @Param을 생략할 수 있습니다. 이 경우에는 파라미터명과 매핑할 이름이 자동으로 "0", "1", "2" 등으로 지정됩니다. @Query("SELEC..
Heap pollution은 Java에서 제네릭스를 사용할 때 발생할 수 있는 문제 중 하나입니다. 제네릭스는 타입 안정성을 보장하기 위해 사용되는 기술이지만, 제네릭 타입이 적용된 컬렉션에 잘못된 타입의 객체를 삽입하거나, 타입이 일치하지 않는 객체를 반환하도록 코드가 작성된 경우 발생할 수 있습니다. 이로 인해 컴파일러에서는 오류가 발생하지 않지만, 런타임에서 예기치 않은 동작을 할 수 있습니다. 예를 들어, 다음과 같은 코드가 있다고 가정해 봅시다. List stringList = new ArrayList(); List rawList = stringList; // warning: unchecked conversion rawList.add(1); // heap pollution String s = s..
본문의 글은 오라클 문서를 번역한 글 입니다. Unchecked Exceptions에 관한 논쟁 자바 프로그래밍 언어는 확인되지 않은 예외(RuntimeException, Error 및 그들의 하위 클래스)를 catch하거나 명시하는 것을 메소드에서 요구하지 않기 때문에, 프로그래머들은 UncheckedException만 던지도록 코드를 작성하거나 모든 예외 하위 클래스를 RuntimeException으로 상속하려는 유혹에 빠질 수 있습니다. 이러한 지름길을 사용하면 컴파일러 오류를 걱정하지 않고 예외를 지정하거나 잡지 않고 코드를 작성할 수 있지만, 이는 확인되지 않은 예외를 지정하거나 잡는 요구사항의 의도를 우회하며, 클래스를 사용하는 다른 사람들에게 문제를 일으킬 수 있습니다. 이는 프로그래머에게는..
1. Java에서 c++ 사용하는 방법 2. Client의 직관을 신뢰했을 때 발생하는 일 3. "Good looks sell"은 패션과 소프트웨어에 모두 적용 됩니다. "Good looks sell"은 제품이나 서비스가 잘 보기 좋다면, 더 많은 사람들이 그것을 더 많이 구매하고 사용할 가능성이 높다는 의미입니다. 이는 제품이나 서비스가 시각적으로 매력적이고 눈에 띄는 경우, 소비자들은 더욱 관심을 가지며 제품이나 서비스의 가치를 높게 평가하기 때문입니다. 4. 코드 리뷰를 하는 동안 프로그래머의 심경 변화 5. 왜 아무도 저의 간단한 인터페이스를 이해하지 못하나요? 6. null과 0, undefined 구분하는 방법 7. 자기 성장은 과소평가 되어있다. 8. 분명히 세미콜론은 사탄에 의해 만들어졌을..
- Total
- Today
- Yesterday
- 스프링 데이터 jpa
- Spring Boot JPA
- Spring Boot
- Jackson
- proto3
- intellij
- spring boot app
- 헥사고날 아키텍처
- 함께 자라기
- Spring Boot Tutorial
- r
- 스프링 부트 애플리케이션
- JSON
- leetcode
- Java
- 함께 자라기 후기
- 스프링 부트
- 스프링 부트 회원 가입
- Spring Data JPA
- 스프링부트
- QueryDSL
- 클린 아키텍처
- 스프링 부트 튜토리얼
- gRPC
- spring boot jwt
- JPA
- Linux
- @ManyToOne
- spring boot application
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |