그림과 실습으로 배우는 도커 & 쿠버네티스를 읽고 중요하다고 생각한 부분을 정리한 글입니다. 쿠버네티스의 클러스터는 마스터 노드와 워커 노드라는 두 가지 노드로 구성 된다.마스터 노드에서 컨테이너를 실행하지는 않으며 워커 노드에서 실행되는 컨테이너를 관리하는 역할을 한다.마스터 노드에는 컨테이너 등의 상태를 관리하기 위해 `etcd`라는 데이터베이스가 설치된다. CNI(가상 네트워크 드라이버)ex. 플란넬, 칼리코, AWS VPC CNI 등 마스터 노드(컨트롤 플레인)의 구성항목내용kube-apiserver외부와 통신하는 프로세스, kubectl로부터 명령을 전달받아 실행한다.kube-controller-manager컨트롤러를 통합 관리, 실행한다.kube-scheduler파드를 워커 노드에 할당한다...
감사하게도, AWS에 대해 공부해 보려고 할 때쯤 서평단에 당첨되어 제이펍 출판사로부터 제공받게 되었습니다. "AWS 시스템 개발 스킬업"은 클라우드 활용을 위한 실용적인 지침서로, 단순한 서비스 소개에 그치지 않고 시스템 개발 및 운영 전반의 노하우를 제공하고 있습니다. 주요 내용● 클라우드의 기술적인 특징과 시스템 개발의 변화 과정● 클라우드 서비스 선정 포인트● 올바른 비기능 요건 구현● 아키텍처링 판단 포인트● 다중 계정 아키텍처 구축● 클라우드로 구축한 시스템의 안정적인 유지 방법● 투자 대비 효과를 평가하는 방법특히 5-6장에 존재하는 '다중 계정 아키텍처를 구축'해보는 과정에는 실습 캡쳐본이 제공되어 있습니다. AWS 계정 생성 방법부터 서비스 구성 과정까지 제공되어 실습하기 수월했습니다...
[주의사항]해당 방법(termux)은 PID 1을 사용하지 않습니다.때문에 도커를 구동할 예정이시거나, 시스템 관리자 권한이 필요한 일을 하실 경우 다른 방법을 추천드립니다. *개인적인 일로 서버 관리를 할 시간이 없어 더 알아보지 못할 것 같아 저도 해당 방법을 사용하지 않기로 결정 했습니다.서버가 돌아갈 때 아마존 웹 서버의 경우 이번 년에 정책이 바뀌어서 Ipv6를 사용할 경우 시간당 과금이 되었다.현재 내가 필요한 서버는 정말 조그만, 테스트 서버일 뿐인데 과금되지 않을 방법을 찾아보던 중 가장 괜찮았던 방법이 집에 있는 공기계 활용하기였다. 이번에 친구에게 좋은 기회로 라즈베리 파이를 선물 받으면서 미루고 미루던 자체 홈 서버를 만들자 생각해서 실행에 옮겼다.안드로이드에 자체 서버를 구축하는 글..
1. 목표시스템 전반에서 발생할 수 있는 다양한 예외를 포괄적으로 관리하고, 일관된 방식으로 예외를 처리하기 위해 예외 처리 로직이 필요합니다.에러 핸들링을 위한 예외 처리 로직 구현 과정을 정리해 보았습니다. *아직 리팩토링이 진행중인 상태로, 생성되지 않은 예외들이 있어서 추후 에러코드들이 거의 완성된다면 추가 해두겠습니다.2. 예외 코드 정의먼저, 클라이언트와 서버에서 발생할 수 있는 다양한 예외 상황에 대해 정의합니다.에러의 경우 서버와 클라이언트에서 생성되는 2가지의 오류가 있기 때문에 ClientErrorCode와 ServerErrorCode를 enum 클래스로 나누어 정의해 주었습니다.이 때, ErrorCodeModel이라는 인터페이스를 생성해주었습니다.ErrorCodeModel 인터페이스의..
기능을 구현 하면서 정신 차리고 보니 중복된 코드가 너무 많아서 코드 리팩토링을 진행하기로 했습니다. 여러 사람이 작업하면서 PR 날릴 때 코드 리뷰를 진행하지 않은 결과입니다.리뷰를 진행하지 않으면 어떤 나비효과를 불러오게 되었는지 요즘 엄청 잘 느끼고 있습니다.😅 대표 서비스 클래스인 DiaryService만 코드 리팩토링 과정을 나타내 보려고 합니다.미리보는 리팩토링 결과리팩토링 전 341줄로 이루어져있던 코드는 333줄의 코드로 줄었습니다.코드 줄로만 판단했을 때는 많이 줄은 것은 아니나,전반적인 중복 로직에 대한 코드를 메서드로 분리하여 코드의 양이 줄었고, 메서드 내 가독성이 향상되었습니다.신경쓰이는 네이밍도 조금씩 손보아서 코드의 가독성과 명확성이 향상되었습니다.메서드가 많아짐에 따라 ..
아래의 '[잔디일기] 패키지 구조에 대한 고민'에 대한 글로부터 이어지는 글입니다. [잔디일기] 패키지 구조에 대한 고민잔디 일기 서비스의 경우 간단한 서비스였기 때문에 1차 기능 구현 기간까지는 비교적 수월하게 진행을 해 왔으나,1. 초반에 팀원 분들과 서로 상의하지 않고 각자 구현했던 패키지 구조로 인해yeseul-dev.tistory.com 해당 글을 토대로 패키지 구조 변경을 시도 했습니다.하지만 구조 변경을 하면서 필요한 패키지들이 보였고, 기존 예정이었던 아래와 같은 구조에서 조금 변경하게 되었습니다.# 기존 계획⎿ grassdiary ⎿ global ⎿ auth ⎿ util ⎿ common ⎿ request ⎿ response ..
잔디 일기 서비스의 경우 간단한 서비스였기 때문에 1차 기능 구현 기간까지는 비교적 수월하게 진행을 해 왔으나,1. 초반에 팀원 분들과 서로 상의하지 않고 각자 구현했던 패키지 구조로 인해 커져버린 메인 패키지2. 추가해야 할 기능이 늘어남에 따라 중구난방으로 생성되어버린 패키지3. 하나의 기능을 수정하려면 여러 패키지를 수정해야 하는 번거로움해당 부분들 때문에 대규모 패키지 수정이 필요해 보였습니다. 그래서 패키지 구조를 어떤 식으로 고민을 했고, 그래서 어떻게 바꿀 것인지에 대해 적어보았습니다.패키지 구조를 만드는 방식에는 계층형 구조와 도메인형 구조가 있습니다 . 계층형 구조는 쉽게 Controller/Service/Domain으로 나누는 구조로, 다음과 같이 표현되어 서로 메시지를 주고 받습니다...
백엔드 개발자를 준비하면서 어떤 것들을 준비해야하는지 감을 잡을 때, 입문자들을 위한 책이다. 그렇기 때문에 정말 기본지식 정도가 적혀 있었다. 한 가지의 서비스를 만들려면 어떤 flow로 백엔드 개발을 하게되는지 알 수 있다. 가볍게 읽기 좋은 책이었다. REST API 설계 규칙 URI에 동사가 아닌 명사 사용하기 자원의 계층 관계는 /로 나타내기 소문자만 사용하며 명사와 명사를 구분할 때는 -를 사용하기 https://api.sports.com/social_login - X https://api.sports.com/social-login - O 해당 부분은 프로젝트를 진행하면서 놓쳤던 부분이었는데 덕분에 알게 되었다. GraphQL REST API는 중식당처럼 백엔드 개발자가 미리 만들어놓은 API..