profile
성장하는 개발자가 되고싶어요

Test Driven Development

TDD의 궁극적인 목표는 작동하는 깔끔한 코드의 작성이다. 깔끔한 코드란 의존성 관리 및 가독성이 높은 코드라고 생각한다. 유지보수가 수월해지고 다른 팀원들이 코드를 쉽게 이해 할 수 있다.TDD는 자동화된 테스트로 개발을 이끌어가는 방식이다. TDD에서는 다음의 두

2023년 4월 29일
·
0개의 댓글
·

JDBC 동작원리

정의 : 자바와 데이터베이스를 연결하기 위한 Java 표준 SQL 인터페이스JDBC가 없다면 애플리케이션에서 연결할 DB에 따른 설정 방식이 각각 다 다를 것이다. 하지만 JDBC를 사용하기 때문에 DBMS의 종류(MySQL, MariaDB, Oracle 등)에 상관없

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

Spring Batch란?

Read : 데이터 저장소에서 특정 데이터 레코드를 읽는다.Processing : 원하는 방식으로 데이터를 로직 처리한다.Write : 수정된 데이터를 다시 저장소에 저장한다.Job은 배치 처리 과정을 하나의 단위로 만들어 놓은 객체다. 또한 배치 처리 과정에 있어 전

2023년 1월 25일
·
0개의 댓글
·

Coroutine

코루틴은 코틀린만의 것이 아니다. 이름이 비슷해서 코틀린의 것이라고 생각할 수 있지만 파이썬, C- '협력형 멀티 태스킹', '동시성 프로그래밍 지원', '비동기 처리를 쉽게 도와줌' 이렇게 3가지 키워드로 정리할 수 있다.Co협력/함께 + Routine태스크/함수 :

2023년 1월 24일
·
0개의 댓글
·

Logging, Kafka, Redis, Hadoop..?

배포 환경에서 동작 상태를 확인하기 위해 로깅이 필요하다. 로깅이란 프로그램 동작시 발생하는 모든 일을 기록하는 행위로, 서비스 동작상태 및 장애를 표현한다.I/O 작업 (Http 통신, DB 처리 등), Null Pointer Exception, Application

2023년 1월 14일
·
0개의 댓글
·

어떻게 다른 서버와 통신할까요?

ThreadFutureSingle-Thread 기반6\. Mono/Flux

2023년 1월 7일
·
0개의 댓글
·
post-thumbnail

Architecture?

설계의 핵심은 의존성이다.큰 계획 없이 개발하다 보면 얽히고설킨 스파게티 코드가 나온다. sw는 지속해서 변하고, 정돈되지 않은 코드를 유지보수한다면 개발 시간이 오래 걸릴 것이다. 예를 들어 하나의 기능을 수정하는데 여러 모듈을 건드린다면 당연히 개발비용이 증가한다.

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

[Kubernetes] 전체 시스템 플로우

Horizontal PodAutoScaler에 의해 트래픽이 늘어나거나, 시스템 리소스 사용량이 증가하면 유동적으로 파드를 늘린다. 이후 사용량이 줄어들면 파드 일부를 제거하기도한다.Deployment를 통해 무중단 배포가 가능하며, 이 과정에서 ReplicaSet을

2022년 12월 29일
·
0개의 댓글
·

[Kubernetes] 파드의 컴퓨팅 리소스 관리

파드의 예상 소비량과 최대 소비량을 설정하는 것은 파드 정의에서 매우 중요하다. 이는 리소스를 공평하게 공유하고, 클러스터 전체에서 파드가 스케줄링되는 방식에도 영향을 미친다.파드를 생성할 때 컨테이너가 필요로하는 cpu, memory에 엄격한 제한을 지정할 수 있다.

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

[Kubernetes] Disk Storage

파드는 내부에 프로세스가 실행되고 CPU, RAM, 네트워크 인터페이스 등의 리소스를 공유한다. 하지만 디스크는 공유되지 않는다. 파드 내부의 각 컨테이너는 고유하게 분리된 파일시스템을 가지기 때문이다.새로 시작한 컨테이너는 이전에 실행했던 컨테이너에 쓰여진 파일 시스

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

[Kubernetes] 무중단 업데이트 방법

클라이언트가 파드에 서비스를 통해 접근하며, 파드들은 ReplicaSet에 의해 관리된다.파드에서 실행중인 애플리케이션의 버전을 바꾸고 싶을 때 기존 파드를 모두 삭제한 다음 새 파드를 시작하는 방식이 있다. 이는 간단해보이지만, 잠시동안 애플리케이션이 중단되는 문제가

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

[Kubernetes] Pod, Service, Replica

쿠버네티스에 존재하는 애플리케이션 실행 단위모든 컨테이너는 항상 하나의 워커 노드에서 실행되며, 여러 워커 노드에 걸쳐 실행되지는 않는다.컨테이너는 단일 프로세스를 실행하는 것을 목적으로 설계되었으며, 여러 프로세스를 단일 컨테이너로 묶지 않았기 때문에 컨테이너들을 함

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

[Kubernetes] Docker란?

가상화란 하나의 물리 공간에서 여러 가상의 공간을 만들어주는 기술을 말한다.가상화를 관리하는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상머신(VM)을 만들어, 하나의 컴퓨터지만 마치 여러 컴퓨터를 실행하듯 사용할 수 있다.이와 동일한 맥

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

[Kubernetes] Kubernetes란?

몇 년 전만 해도 애플리케이션은 거대한 모놀리틱 시스템이었다. 업데이트가 자주 되지 않아 릴리스 주기가 느리고, 개발자는 개발 후 패키징 파일을 운영팀에게 넘기면, 운영팀이 이를 배포 후 모니터링 했다. 이후 운영팀은 하드웨어 장애가 발생하면 이를 사용 가능한 다른 서

2022년 12월 29일
·
0개의 댓글
·

Deployment

가상화란 가상화를 관리하는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상 머신(VM)을 만드는 프로세스다. 가상 메모리에서, 프로세스마다 독립적 공간을 남기는데 메모리만 활용하는 것이 아닌 디스크를 추가로 확보하여, 마치 가상의 공간을 더

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

[Microservice] MSA?

서비스 규모가 크다면 혹은 방대한 코드를 가진다면 유지보수시 어느 부분을 건드려야할지 어렵다. 따라서 같은 이유로 변경되는 얘들을 모아놓고, 서로 다른 이유로 변경되는것들을 분리한다. 이렇게, 각 서비스는 한가지 일에 집중(SRP)을 목표로, 서비스 크기를 작게 / 자

2022년 5월 26일
·
0개의 댓글
·

[Microservice] Monolithic To MSA

기존의 수 많은 코드를 포함한 모놀리식 시스템을 어떻게 분해하면 좋을까?코드를 설계할 때 우리는 응집력이 높고, 각 컴포넌트간 느슨히 결합되는 서비스를

2022년 5월 22일
·
0개의 댓글
·

Monitoring

시스템을 더 세분화된 마이크로서비스로 분해하면 많은 해택을 얻지만, 모니터링 하는 관점에선 '복잡성'이 증가한다. 장애 발생시 모놀리식 애플리케이션은 적어도 분석을 시작할 아주 명확한 지점이(단일 장애 포인트) 있지만, 마이크로 서비스는 작은 서비스들이 합쳐서 기능을

2022년 4월 17일
·
0개의 댓글
·

테스트 코드

1. 테스트 코드 목적 > 테스트 코드란 프로덕트 코드를 테스트(검증)하는 코드다. 작성한 코드가 문제 없는지 확인하는 용도로 사용된다. [1] 버그를 잡는다. unit, integration 등의 다양한 방식의 테스트 코드를 프로덕트 코드를 검증한다. 특정 기능

2022년 4월 16일
·
0개의 댓글
·

함수형 프로그래밍과 람다

인풋과 아웃풋이 있다.외부 환경으로부터 철저히 독립적이다. 오로지 자신들에게 주어진것만 철저히 처리한다.같은 인풋은 같은 아웃풋을 낸다. : pure function비함수형 프로그래밍도 실수만 없으면 함수형 프로그래밍 같이 동일 인풋에 동일 아웃풋을 낼 수 있지만 외부

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