본문 바로가기

전체 글

(17)
[JPA] Slice & Page Spring Data JPA에서는 Pagination을 위한 두 가지 객체를 제공한다. 바로 Slice와 Page다. Repository 코드를 먼저 보자. public interface MemberRepository extends JpaRepository { Slice findSliceBy(final Pageable pageable); Page findPageBy(final Pageable pageable); } // Controller // queryParameter를 통해 page, size를 받는다 @GetMapping("/api/members") public List findAll(@RequestParam int page, @RequestParam int size) { // 생략 } // Ser..
[지원플랫폼 근로] 애쉬&파랑은 지원플랫폼 도메인을 찢어... 보호되어 있는 글입니다.
[우테코 일기] 안녕하세요 우테코 개놀자 파랑입니다: 노느라 알찼던 레벨2 방학 우테코의 개발자가 아닌 개놀자로서 레벨 2 방학을 너무 알차게 보내버렸다. 방학식 집필왕 시상식 우리 데일리 플래너 스터디 크루들 중에서 3명이나 집필왕이 되었다. 스터디원이 9명인데 3명이나 집필왕이라니.. 크루들 모두 속으로 감동의 눈물을 흘렸다. 내가 뭐 한 것도 없으면서 세상 뿌듯했다. 집필왕 소감 말할 때 꼭 우리 데플을 언급하기로 했는데 아니 이럴 수가. 소감을 안 물어보는 거다. 손 들고 "소감은 안 물어보나요?"라고 말하고 싶었는데 너무 어그로 끌릴까봐 차마 말하지 못했다. 아쉬운 대로 상장 들고 단체사진이라도 찍었다. 그때 잉이 잠깐 자리를 비워서 합성해주기로 했는데 귀찮아서 아무도 안 해줬다. 티거, 민초, 에덴의 글이 궁금하다면 여기로. 우테코에서 찾은 나만의 효과적인 공부법 | 우아..
[우테코 일기] 벌써 6월 나는 한 번도 어른이 되고 싶다는 생각을 해본 적이 없다. 부모님이 간섭하는 스타일이 아니라서 학생이라고 못해본 것도 없었고, 무엇보다 먹고사는 거에 대한 큰 걱정 없이 학교 다니면서 놀 수 있는 게 좋았다. 그래서 한 살 한 살 나이를 먹고 취업을 해야 한다는 게 싫다. 지금 행복한데 앞으로는 현실에 이리저리 치여서 행복하지 못할까봐 조금 무섭다. 이런 마음 때문에 학교처럼 다닐 수 있는 우테코의 10개월이 제발 길었으면 좋겠다고 생각했다. 하지만 시간은 생각보다 더 빠르게 흘러서 벌써 6월이 되었다. 데일리조 Lv1 구구조 Lv1 때는 우리 데일리는 안 친해서 아쉽다고 여기저기 찡찡거리고 다녔는데 이젠 남부럽지 않게(?) 붙어 다닌다. 밥도 자주 같이 먹고 주말 모각코도 하고 스터디도 하고. 아무나 ..
[Kotlin] Backing Field와 Backing Properties (wordle 미션) 자바의 Property란? 자바에서는 필드와 접근자 메서드(getter, setter)를 묶어 property라 한다. 프로퍼티라는 개념이 생긴 이유는 데이터를 캡슐화하려는 자바 클래스의 목적과 연관이 있다. 자바 클래스는 기본적으로 필드를 private으로 설정하고 외부에서 값을 가져오거나 변경할 때 getter, setter를 제공한다. 이를 통해 캡슐화된 클래스의 고유한 기능은 유지하면서 클라이언트의 요구에 따라 속성 값을 확인하거나 변경할 수 있게 해준다. 코틀린의 Property란? 코틀린에서는 필드에 대한 기본 접근자 메서드를 자동으로 만들어준다. 때문에 필드 대신 프로퍼티라는 말을 사용한다. 원한다면 접근자 메서드를 명시적으로도 선언할 수 있다. Backing Field backing fie..
[Kotlin] mutable collection 사용 줄이기 (wordle 미션) mutable collection 사용 줄이기 wordle에서 mutable collection의 사용을 지양하는 방향으로 리팩토링을 해보라는 피드백을 받았다. 우선 기존의 코드를 보자. 기존 코드 분석 코드를 보면 answerMap, result가 모두 mutable collection을 사용하고 있다. check()와 putTileIfSame() 외의 메서드는 생략했다. class Words(private val values: List, today: LocalDate = LocalDate.now()) { private val answer: Word = findAnswer(today) private var answerMap: MutableMap = mutableMapOf() fun check(word:..
[Kotlin] 확장함수 (wordle 미션) 확장 함수 확장 함수는 어떤 클래스의 멤버 메서드인 것처럼 호출할 수 있지만 그 클래스의 밖에 선언된 함수다. (Kotlin In Action - p.115) 코틀린은 상속이나 데코레이터를 사용하지 않고 클래스를 확장할 수 있는 기능을 제공한다. 확장을 이용하면 수정이 불가능한 서드파티 라이브러리에 대해서도 새로운 함수를 만들 수 있다. 이렇게 만든 함수를 확장 함수라고 하며, 원래 클래스의 메서드인 것처럼 호출할 수 있다. 구현 방법 // this.get(this.length - 1)에서 this 생략 fun String.lastChar(): Char = get(length - 1) // 호출 "Kotlin".lastChar() 확장 함수를 만드는 방법은 간단하다. 구현하려는 함수 이름 앞에 확장할 클..
[Kotlin] Sealed Class (wordle 미션) Sealed Class sealed 클래스는 기본적으로 abstract 클래스이며 sealed 클래스를 상속받는 여러 서브 클래스들을 가질 수 있다. sealed 클래스를 사용하면 보다 엄격하게 상속을 관리할 수 있다. 컴파일 시 컴파일러가 sealed 클래스를 상속받는 서브 클래스들을 모두 파악하고 있기 때문이다. 또한 컴파일 이후에는 서드파티 클라이언트가 sealed 클래스를 확장할 수 없다. 서브 클래스는 class, data class, object 모두 가능하다. 다만 상태 값이 바뀌지 않는 서브 클래스라면 object를 사용하는 것이 좋다. Sealed Class의 특성 sealed 클래스의 서브 클래스들은 반드시 같은 파일 내에 선언되어야 한다. sealed 클래스는 기본적으로 abstrac..