Java 직렬화를 하는 이유가 무엇일까?

예전에 회사 프로젝트를 보면 클래스에서 Serializable 인터페이스를 구현한 것을 자주 볼 수 있었습니다. 그 당시에는 객체를 바이너리로 변환하기 위해 직렬화 인터페이스를 구현한다는 정도만 생각을 했었는데, 정확히 왜 하는지 궁금해서 찾아보았습니다.Java 직렬화

2021년 7월 1일
·
0개의 댓글

JMeter 설치 및 실행 방법

Apach JMter를 사용하기 위해 알아야하는 용어들에 대해서 정리하였습니다. 기본적으로 REST API 기능 개발을 하고 부하 테스트를 위해 많이 사용하는 툴 중 하나이기 때문에 배워두면 유용합니다.JMeter는 원하는 만큼 쓰레드를 생성하여 서버에 부하를 줄 수

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

JUnit 테스트에 대한 고찰

스프링 부트 책을 읽다가 TDD(Test Driven Development)라는 용어가 심심치 않게 등장하였고, 그 이후에 남들이 개발할 때 TDD로 개발을 하면 좋다고 해서 저도 막연하게 트렌디에 쫒기지 않기 위해서 배웠습니다.시간이 흘러서 지금도 Controller

2021년 6월 21일
·
0개의 댓글

BigDecimal에 대해서 알아보자

최근에 금융쪽 도메인에서 개발 업무를 하는 친구한테 돈을 계산할때 자료형으로 double, float보다 BigDecimal이라는 자료형을 사용한다고 들었습니다. 그 이유를 물어보니 위 자료형(double, float)보다 BigDecimal이 미세한 숫자의 변동도 허

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

Docker 등장 배경 및 명령어 정리

도커는 어떠한 프로그램도 컨테이너로 만들 수 있고 어디서든 돌아갑니다.가상머신과의 차이점은 가상머신처럼 독립적으로 실행되지만, 더 빠르고 더 쉽고, 더 효율적입니다.예전에는 서버를 운영하기 위해서 문서로 서버 운영방법을 기록했지만, 시간이 지나면서 문서의 정확성과 서버

2021년 5월 25일
·
0개의 댓글

Redis란?

백엔드 공부를 하면서 성능을 더 높이기 위해 빠르게 조회용으로 쓰는 NoSQL에 대해서 많이 들어봤습니다. 그 중에서 대표적인 몽고 DB와 Redis가 유명한데 Redis가 무엇인지 궁금하여 찾아봤습니다.Redis는 In-Memory 기반의 키-값 형식의 비정형 데이터

2021년 5월 23일
·
0개의 댓글
post-thumbnail

Jenkins에서 EC2로 배포하기

GitHub와 젠킨스를 SSH로 연동했다면, 이제 AWS(Amazone Web Service)에서 제공하는 가장 유명한 EC2(Elastic Compute Cloud)에 배포를 해봤습니다.먼저, Jenkins에서 제공해주는 플러그인 중에 SSH로 EC2에 jar 배포

2021년 5월 20일
·
0개의 댓글
post-thumbnail

Jenkins SSH를 이용한 GitHub 연동방법

젠킨스와 GitHub를 연동하여 프로젝트 소스를 가져와서 빌드하는 방법이 여러가지가 있지만, 사용자명과 비밀번호 인증방식은 보안상 추천하지 않기 때문에 SSH기반으로 젠킨스와 GitHub를 연동하는 방법에 대해서 직접 구축해봤습니다.Jenkins 설치가 안되어있다면 J

2021년 5월 19일
·
0개의 댓글
post-thumbnail

Jenkins 설치 및 구동하기

젠킨스와 GitHub를 연동하여 프로젝트 소스를 가져와서 빌드하는 방법이 여러가지가 있지만, 사용자명과 비밀번호 인증방식은 보안상 추천하지 않기 때문에 SSH기반으로 젠킨스와 GitHub를 연동하는 방법에 대해서 직접 구축해봤습니다.먼저, GitHub와 연동해야 할 대

2021년 5월 19일
·
0개의 댓글

스프링 부트 Custom 검증 어노테이션 기능 구현

프론트에서 사용자가 API 요청을 위해 전달한 파라미터들을 검증하겠지만, 표현 계층 (controller)에서도 검증을 하여 안정성을 높이는 것도 중요한 부분이라고 생각합니다.이 경우에는 javax.validation에서 제공해주는 다양한 검증 어노테이션을 사용할 수

2021년 5월 14일
·
0개의 댓글

@JsonNaming과 @JsonProperty

Spring Boot에서 클라이어트로부터 JSON String 포맷으로 데이터를 주고 받을 경우 간혹 Javascript에서 Snake Case 방식으로 key 값을 전송하는 경우가 있습니다.스네이크 케이스는 phone_number 처럼 단어마다 언더스코어가 들어가는

2021년 5월 14일
·
0개의 댓글

Kotlin 정보은닉 캡슐화

각 클래스나 메서드, 프로퍼티의 접근 범위를 가시성(Visibility)이라고 합니다. 클래스에서 민감하거나 불필요한 부분은 숨기고 사용하기 위해 필요한 부분만 공개하듯이 각 클래스나 메서드, 프로퍼티에 가시성 지시자에 의해 공개할 부분과 숨길 부분을 정할 수 있습니다

2021년 5월 10일
·
0개의 댓글

코틀린 기본문법

Intellij에서 코틀린 프로젝트를 생성하고, 마치 대학생때 가장 먼저 접하는 프로그래밍 대표 예제 Hello Kotlin!을 콘솔창에 띄우는 예제를 작성하였습니다.위의 kotlin 파일에서 main() 함수만 정의하고 실행시키면 콘솔에 정상적으로 Hello Kotl

2021년 5월 8일
·
0개의 댓글

Gradle 기본 다지기 2편

Spring Boot에서 빌드 툴로 gradle을 사용할 경우에 이제까지 모르고 썼던 코드들에 대해서 정리를 해봤습니다.먼저, 의존성 라이브러리를 땡겨오기 위해 작성하는 build.script에 대해서 살펴보겠습니다.buildscript는 gradle로 task를 수행

2021년 5월 7일
·
0개의 댓글
post-thumbnail

Cursor와 Paging 기반 ItemReader 구현체

Cursor 방식은 DB와 커넥션을 맺은 후, Cursot를 한칸씩 옮기면서 지속적으로 데이터를 가져옵니다. DB와 어플리케이션 사이 통로를 하나 연결해서 하나씩 데이터를 가져온다고 생각하면 됩니다.JdbcCursorItemReaderHibernateCursorItem

2021년 5월 7일
·
0개의 댓글
post-thumbnail

@JobScope와 @StepScope

@JobScope와 @StepScope는 스프링의 기본 Scope인 싱글톤 방식과는 대치되는 역할입니다.Bean의 생성 시점이 스프링 애플리케이션이 실행되는 시점이 아닌 @JobScope, @StepScope가 명시된 메서드가 실행될 때까지 지연시키는 것을 의미합니다.

2021년 5월 7일
·
0개의 댓글
post-thumbnail

스프링 부트 휴먼회원 배치 설계

위에서 살펴본 스프링 부트 배치 컴포넌트들을 이용하여 커뮤니티 사이트에 가입한 회원 중 1년이 지나도록 상태 변화가 없는 회원을 휴먼회원으로 전환하는 배치 예제코드를 작성하였습니다.Java 8Gradle 6.3Spring Boot 2.3.0 RELEASEIntelliJ

2021년 5월 7일
·
0개의 댓글
post-thumbnail

스프링 부트 배치 입문을 위한 용어정리

스프링 부트 배치는 대용량 데이터를 처리하는 기술로만 알고 있어서, 이번 기회에 한번 개념만 살펴보았습니다.스프링 부트 배치를 왜 사용하는지 장점부터 살펴보았습니다.대용량 데이터 처리에 최적화되어 고성능을 발휘합니다.효과적인 로깅, 통계 처리, 트랜잭션 관리 등 재사용

2021년 5월 6일
·
0개의 댓글

Java NIO 채널(Channel)

이전에 올렸던 java.io 패키지에 대해서 공부하고 포스팅했지만, Java 4부터 등장한 java.nio에 대해서도 궁금하여 포스팅하였습니다.NIO는 의미만 봤을 때 Non-blocking IO의 줄임말이라고 생각했지만, 사실 New IO의 줄임말이였습니다. java

2021년 5월 4일
·
0개의 댓글

멀티 모듈에서 QueryDSL 설정 방법

최근에 Spring Boot를 사용하여 멀티 모듈을 구성하였고, 하위 모듈별로 꼭 필요한 의존성만 설정하도록 했습니다. Spring Boot 2.3Gradle 6.3imagecore 모듈은 여러 하위 모듈에서 공통으로 사용하는 도메인 계층을 관리합니다.gradle이 빌

2021년 4월 28일
·
0개의 댓글