profile
백엔드 엔지니어 박희중입니다.
post-thumbnail

[Kotlin] Not Null 타입 변수에 Null이 들어갈 수 있다? | 타입 파라미터(Type Parameter)와 null에 대한 고찰

타입을 나타내는 변수인 타입 파라미터 T는 사실 nullable하다. 타입 파라미터를 not null한 타입 파라미터로 사용하려면 T:Any 널이 될 수 없는 타입 상한을 지정해야한다. T는 nullable이 될 수 있지만, not null로 타입 추론된다

2023년 6월 3일
·
0개의 댓글
·
post-thumbnail

[Effective Kotlin] Chapter 8 | 아이템 49: 하나 이상의 처리 단계를 가진 경우에는 Sequence를 사용하라

Chapter 8: Efficient collection processing Sequence는 lazy하게 처리. 자연스러운 처리 순서(element-by-element). 최소한으로 연산. 무한 sequence로 사용 가능. 각각의 단계에서 컬렉션을 만들어내지 않는다

2023년 5월 30일
·
0개의 댓글
·
post-thumbnail

[Effective Kotlin] Chapter 7 | 아이템 45: 불필요한 객체 생성을 피하라

이펙티브 코틀린 책 Item 45 불필요한 객체 생성을 피하는 것이 최적화에서 중요. 객체로 wrap하는 것은 비용이 발생. 객체 선언, 캐시를 활용하는 팩토리 함수, 무거운 객체를 외부 스코프로 보내기, 지연 초기화, primitives 사용으로 최적화하기

2023년 5월 20일
·
0개의 댓글
·

멀티 스레드(Multi Thread) & 멀티 프로세스(Multi Process)에 대한 고민

멀티 스레드(Multi-Threading)와 멀티 프로세스(Multi-Processing) 비교. 스레드에서 예외가 발생하면 해당 프로세스의 모든 스레드가 영향. 메모리를 공유하지 않기 때문에, 프로세스 간 통신이 필요. 프로세스 생성 및 소멸 비용이 스레드보다 크다.

2023년 5월 17일
·
0개의 댓글
·
post-thumbnail

[Java/Kotlin] try-with-resources으로 자원 해제 처리하기

try-with-resources 구문은 자원을 사용한후 자동으로 닫아주는 기능을 제공. 코드가 간결해지고, 자원 해제가 자동으로 이루어지므로 예외 처리 코드도 간편해진다. Kotlin에서는 use함수를 사용하여 try-with-resources 기능을 할 수 있다.

2023년 5월 6일
·
0개의 댓글
·
post-thumbnail

Exposed의 문제를 expose한다.

Exposed는 Kotlin언어로 작성된 ORM(Object Relational Mapping) 라이브러리다. 실제 insert를 batchInsert 하기 위해서는 JDBC 드라이버에서 제공하는 rewriteBatchedStatements 옵션을 활성화해야한다.

2023년 4월 16일
·
0개의 댓글
·
post-thumbnail

[DB] 트랜잭션이란?

트랜잭션(Transaction)은 데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 뜻한다.작업의 단위는 명령문 하나가 아니다.하나의 논리적 기능을 수행하기 위한 많은 질의어 명령문들을 하나의 트랜잭션이라 한다.트랜잭션은 ACID라는 4가

2022년 4월 11일
·
0개의 댓글
·
post-thumbnail

Rust vs C++

Rust와 C++ 둘다 시스템 프로그래밍, 임베디드 프로그래밍 언어다.둘다 low level 언어로 하드웨어, 컴퓨터에 가까운 엑세스를 다룬다는 공통점이 있다.하지만 Rust가 뜨고 있는 현재, 분명한 차이점은 존재한다.메모리 관리가 매우 중요하다고 볼 수 있는데 C+

2022년 4월 7일
·
0개의 댓글
·
post-thumbnail

HTTP vs HTTPS

HTTP HTTPS HTTP Secure 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전 서버와 클라이언트 사이의 모든 통신 내용이 암호화 인증, 전자상거래와 같이 보안이 중요한 트래픽에 이용 SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화한다

2022년 4월 7일
·
0개의 댓글
·
post-thumbnail

Spring IoC, DI 정리

개발의 제어권을 스프링 컨테이너가 가지고 개발자 대신 Bean들을 제어해주는 행위스프링이 개발자 대신 객체를 제어하기 위해서는 객체들이 Bean으로 등록되어있어야 한다.Annotation으로 간단하게 등록할 수 있다.스프링 MVC에서는 @Controller, @Serv

2022년 3월 12일
·
0개의 댓글
·
post-thumbnail

Spring JPA 엔티티와 매핑 @Entity, @Table, @Column, @Id, @GeneratedValue

객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑 : @Column기본 키(PK) 매핑 : @Id연관관계 매핑 : @ManyToOne, @JoinColumn@Entity가 붙은 클래스는 JPA가 관리DB의 테이블과 매핑name : Entity 이름을

2022년 3월 7일
·
0개의 댓글
·
post-thumbnail

JPA Hibernate ddl 자동생성 옵션과 초기화 / 테이블 생성 오류 Error executing DDL

create: 시작시점에 DROP을 실행하고 테이블 생성 (DROP + CREATE)create-drop: 시작시점에 DROP을 실행하고 테이블 생성하며, 종료시점에 테이블 DROP update: 변경된 스키마 적용validate: 변경된 스키마가 존재하면 변경사항 출

2022년 3월 5일
·
0개의 댓글
·
post-thumbnail

객체 지향 설계와 Spring

객체 지향 특징은 추상화, 캡슐화, 상속, 다형성이 있으며 다형성에 대해 자세히 알아보겠습니다. 좋은 객체 지향 설계의 5원칙은 SRP 단일 책임 원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙 DIP 의존관계 역전 원칙입니다.

2022년 2월 21일
·
0개의 댓글
·
post-thumbnail

AWS EC2에 PuTTY로 접속하기

spring 기반의 새로운 프로젝트를 위해 aws ec2 인스턴스를 생성하였습니다. 윈도우 환경을 사용하고 있기 때문에 PuTTY를 사용하여 ec2 인스턴스에 접속하겠습니다. 기본값으로 두고 "Install"후 "Finish"를 클릭해 PuTTY 설치를 완료합니다.

2022년 2월 19일
·
0개의 댓글
·