Java와 Kotlin의 동등성과 동일성

회사 업무 중에 Spring 내부를 파보다가 Java의 ==과 equals를 만났습니다. 몇년간 Kotlin만 사용해오다가, 문득 자바 코드를 보니 기억이 잘 나지 않았습니다. 그래서 이번 기회에 자바와 코틀린의 동등성과 동일성에 대한 것에 hashCode를 한 스푼

2023년 2월 23일
·
0개의 댓글
·
post-thumbnail

[Kafka] 2장-(2). 카프카 기본 개념과 구조 (도서: 실전 카프카 개발부터 운영까지)

최근 흥미롭게 읽었던 책인 실전 카프카 개발부터 운영까지 - 고승범을 다시 정리해서 기록해두려고 한다.중요한 이론과 개인적으로 느낀점을 다룰 예정이며, 실습은 기록하지 않는다. 프로듀서 디자인 개요 위 그림은 프로듀서의 전체 흐름을 나타낸 그림이다.ProducerRec

2022년 6월 25일
·
0개의 댓글
·
post-thumbnail

[Kafka] 2장-(1). 카프카 기본 개념과 구조 (도서: 실전 카프카 개발부터 운영까지)

최근 흥미롭게 읽었던 책인 실전 카프카 개발부터 운영까지 - 고승범을 다시 정리해서 기록해두려고 한다. 중요한 이론과 개인적으로 느낀점을 다룰 예정이며, 실습은 기록하지 않는다. 이번 장에서는 카프카의 기본 개념(주요 요소, 리플리케이션, 파티션 등)과 핵심 개념(

2022년 6월 23일
·
0개의 댓글
·
post-thumbnail

[Kafka] 1장. 카프카 개요 (도서: 실전 카프카 개발부터 운영까지)

최근 재밌게 읽었던 책인 실전 카프카 개발부터 운영까지 - 고승범을 오늘부터 다시 정리해서 기록해두려고 한다. 중요한 이론과 개인적으로 느낀점을 다룰 예정이며, 실습은 기록하지 않는다. 1장은 카프카가 왜 만들어졌는지, 주요한 특징은 무엇인지, 어떤 곳에서 활용되는지

2022년 6월 15일
·
0개의 댓글
·

[Spring & kotlin] CheckedException과 UncheckedException

springboot와 kotlin으로 개발 중 한 트랜잭션 내에서 save와 file에 write를 해야하는 경우가 생겼습니다. 아래 코드를 보며 자세히 설명드리겠습니다. (코드는 이해의 편의를 위해 조금 극단적으로(?) 작성되었음을 알려드립니다)위 코드처럼 한 트랜

2021년 9월 18일
·
0개의 댓글
·

(작성중) Multi Datasource 설정

2020년 11월 7일
·
0개의 댓글
·
post-thumbnail

Kotlin + JPA를 사용하며 만난 문제 기록

이번 글은 kotlin과 jpa를 같이 사용하며 생긴 이슈들에 대해 소개하겠습니다.보다 자세한 글을 원하시면 우아한 형제들 기술블로그의 이 글 을 읽으시면 좋을 것 같습니다.이번 글에 사용된 코드는 github에 있습니다 .자바로 개발해오다가 이번에 입사를 하면서 코틀

2020년 11월 1일
·
0개의 댓글
·

[Kotlin] 키워드 정리 (open, internal, data class)

이번 글의 코드는 Github에 있습니다. 이번 글에서는 코틀린에서 자주 등장하는 용어들에 대해 알아보겠습니다. 정리하고 싶은 키워드들을 작성하므로 키워드들끼리 연관성이 없을 수 있습니다. open 자바에서는 클래스에 final이 붙지 않으면 모두 다른 클래스에서

2020년 6월 30일
·
0개의 댓글
·
post-thumbnail

[Kotlin] 타입 시스템 : (1) Null 가능성

이번 글의 코드는 Github에 있습니다. 자바에 비해, 코틀린의 타입 시스템은 더 간결하고 가독성 좋은 몇 가지 기능을 제공합니다. 그 중에 대표적으로 널이 될 수 있는 타입(nullable type)과 읽기 전용 컬렉션이 있습니다. 이번 글에서는 코틀린에서 nu

2020년 6월 23일
·
0개의 댓글
·

[Kotlin] 생성자 정리

이번 글의 코드는 여기에 있습니다.아래와 같이 클래스 이름 옆에 괄호로 둘러싸인 코드를 주 생성자 라고 부릅니다. 주 생성자는 생성자 파라미터를 지정하고 그 생성자 파라미터에 의해 초기화되는 프로퍼티를 정의하는 두 가지 목적에 쓰입니다.코틀린의 클래스는 하나의 주생성자

2020년 6월 22일
·
0개의 댓글
·

[Java] Immutable Object(불변객체)

면접에서 "자바에서 불변객체에 대해 설명해주세요.."라는 질문을 받았다.속으로 'final만 붙이면 불변객체 아닌가?'라는 생각을 했지만 불변객체에 대해 공부하지 않아 모른다고 했다...그래서 찾아봤더니 생각했던 것과 다른 내용이 있어서 글을 작성한다.이번 포스팅의 코

2020년 5월 12일
·
3개의 댓글
·
post-thumbnail

[OS] Deadlock

교착상태(deadlock)란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태로 정의된다. 교착상태는 시스템 자원에 대한 경쟁 도중에 발생할 수도 있고 프로세스 간 통신 도중에 발생할 수도 있다. 집합 내의 한 프로세스가 특정 사건의 발생을 기다

2020년 3월 5일
·
1개의 댓글
·
post-thumbnail

@RequestBody에 왜 기본 생성자는 필요하고, Setter는 필요 없을까? #3

이전 글에서는 RestController에서 @RequestBody 바인딩을 Jackson 라이브러리의 ObjectMapper가 하는 것을 확인했습니다.그리고 RequestBody를 생성할 때, DTO가 Property기반이 아니거나 Delegate를 한 상태가 아니라

2020년 2월 18일
·
4개의 댓글
·

[OS] 세마포어와 뮤텍스

세마포어와 뮤텍스은"여러 프로세스나 쓰레드가 공유 자원에 접근하는 것을 제어하기 위한 방법"으로 정의할 수 있습니다. 즉, 병행 처리를 위한 프로세스 동기화 기법입니다. 예를 들자면 교차하는 철도에서 열차의 진행가능 여부를 나타내는 신호등이 세마포어나 뮤텍스가 될 수

2020년 2월 14일
·
1개의 댓글
·

@RequestBody에 왜 기본 생성자는 필요하고, Setter는 필요 없을까? #2

이전 글에서는 어떻게 @RequestBody를 처리하는지를 알아보기 위한 과정을 설명했습니다. 이번 글에서는 @RequestBody를 바인딩하는 ObjectMapper에 대해 알아보고, 결론을 짓겠습니다. 참고로 아래 사진들에서 현재 위치(class)는 다음과 같이 찾

2020년 1월 24일
·
6개의 댓글
·

@RequestBody에 왜 기본 생성자는 필요하고, Setter는 필요 없을까? #1

Springboot로 토이 프로젝트를 진행중 Request DTO(requestBody로 오는)에 @NoArgsConstructor를 빠뜨려서 에러가 났다. (습관적으로 적어오던 어노테이션...) 그런데 @RequestBody로 넘어오는 객체에는 기본 생성자가 왜 필요

2020년 1월 23일
·
0개의 댓글
·

2019년 회고

20대의 마지막 회고 2019년이 끝난지 5일이 지났다. 이동욱님의 책을 따라해보는게 재밌어서 끝내느라 회고가 늦어졌다. 2019년에는 많은 것을 경험하고, 배운 의미있는 한 해였다. 20대 마지막을 마무리 짓고, 30대의 시작을 생각해보는 시간을 가져본다. Baek

2020년 1월 5일
·
3개의 댓글
·

.gitignore 사용하기

.gitignore란? 깃에서 특정 파일 혹은 디렉토리를 관리 대상에서 제외할 때 사용하는 파일. 이 파일 안에 기입된 내용들은 모두 깃에서 관리하지 않겠다는 것을 의미합니다. 예를 들어 자동으로 생성되는 로그파일, 프로젝트 설정 파일 등을 관리 대상에서 제외할 수 있습니다. 인텔리제이에 플러그인 설치하기 인텔리제이에서는 .gitignore 파일에 ...

2019년 12월 15일
·
0개의 댓글
·

gradle 프로젝트를 스프링 부트 프로젝트로 변경하기

image.jpg > 이번 글은 이동욱님의 의 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기를 따라해보며 내용을 공유하고자 합니다. > > 평소 스프링 이니셜라이저를 통해 프로젝트를 생성해와서 build.gradle의 코드가 무슨 역할을 하는지를 잘 모르기 때문에 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기 먼저, intellij에서 그...

2019년 12월 14일
·
0개의 댓글
·

[JPA] 임베디드 타입(embedded type)

임베디드 타입(복합 값 타입) 새로운 값 타입을 직접 정의해서 사용할 수 있는데, JPA에서는 이것을 임베디드 타입(embedded type)이라 합니다. 중요한 것은 직접 정의한 임베디드 타입도 int, String처럼 값 타입이라는 것입니다. 임베디드 타입을 사용하지 않았을 때와 사용했을 때를 비교해 봅시다. 위는 평범한 회원 엔티티입니다. ...

2019년 12월 9일
·
1개의 댓글
·