Gallery
Search
시간이 없으신 분들을 위해 
부대 지정 기능이 뭐에요?
스타크래프트를 비롯한 RTS를 좋아하시는 분들은 부대 지정 기능을 아실겁니다.

테란을 유린 중인 1번 부대와 친구들
부대지정 기능이란 자주 사용하는 부대들을 눈에 보이는 화면상에서 따로 찾지 않아도 1 ~ 0 사이의 숫자키를 이용해 빠르게 명령을 전달할 수 있도록 미리 hotkey를 맵핑해두는 기능을 뜻하는데요, 만약 부대지정에 익숙하지 않으시다면 즐겨찾기를 떠올리셔도 될 것 같습니다.

코딩 할 때 ‘부대 지정’을 할 수 있다면?? 인텔리제이 bookmark 기능 알아보기
2023/03/12 00:00
ETC
이 게시물은 시리즈로 작성됩니다. 해당 포스트는 서문에 해당합니다.
CDC란 무엇인가요?
CDC Change Data Capture는 우리 말로 변경 데이터 캡처 라고 부릅니다.
위키의 설명 중 일부를 발췌하면 다음과 같습니다.
데이터베이스에서 변경 데이터 캡처(change data capture, CDC)는 변경된 데이터를 사용하여 동작을 취할 수 있도록 데이터를 결정하고 추적하기 위해 사용되는 여러 소프트웨어 디자인패턴 들의 모임이다.
다른 말로 “DB에서 데이터가 변경된 것을 감지하여 어떤 행위를 유발하는 걸 CDC라고 부르는구나” 라고 표현할 수 있겠네요.
그렇다면 데이터가 변경된 것을 감지해야 하는 상황은 어떤 상황이 있을까요?
MSA와 이벤트 기반 아키텍처
과거 배달의 민족 코드가 MSA 기반으로 변경한 이야기를 들려준 MSA, 배달의 민족 마이크로서비스 여행기 정리 라는 글을 작성한 적이 있습니다. 모놀리식 Monolithic 아키텍처의 단점이 될 수 있는 거대한 복잡성을 감당하기 위해 각 서비스를 별도로 분리한 모델을 MSA Micro Service Architecture라고 합니다.
MSA site 추천
갑자기 레퍼런스 추천! Chris Richardson 라는 개발자 분이 MSA 패턴에 관한 다양한 아티클을 공유해주고 있는 사이트 입니다.
CDC (Change data capture) 구현하기
2023/02/11 18:00
아키텍처
회고에서 꼭 필요한 것
회고는 회고 그 자체로서는 가치가 없다. 문제를 되짚어보고, 해야할 일(action plan)을 구체적으로 만들었을 때에 비로소 가치가 생긴다. - 성시형
어디서 주워들은 말일텐데, 출처가 기억나지 않아 마치 내것인양 적어보았다. 후후
글또 7기 회고를 시작해보도록 하겠다.
나는 무엇을 실패하였는가
반성으로부터 시작하는 나의 회고
다짐글에 의하면 나는 12번의 글을 작성하고 주 3회이상 운동하고 3명 이상의 새로운 개발자와 사귀기로 하는 개발자가 되기로 다짐했었다. 현실은 어떠한가?
1.
2.
3.
하나의 주의, 하나의 실패, 하나의 성공..
생각보다는 준수하다(?).

2022 글또 7기 회고
2022/10/16 16:00
들어가며
이펙티브 자바 item 1에서 등장하는 서비스 제공자 프레임워크에 대해 학습하고, java의 이미지 유틸 클래스 Image IO를 통한 실제 사용 예제를 살펴봅니다.
이펙티브 자바 item 1, 생성자 대신 정적 팩터리 메서드를 고려하라
다섯 번째, 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 이런 유연함은 서비스 제공자 프레임워크(service provider framework)를 만드는 근간이 된다.
오잉 또잉~? 이해가 잘 가지 않는 문구가 두 줄 연속으로 나옵니다. 한 줄씩 보겠습니다.
Line 1. 반환할 객체의 클래스가 존재하지 않아도 된다.
첫번째 줄, 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다.
이 말은 무슨 말일까요?
팩터리 메서드는 new 연산자와 동일하게 특정 클래스의 인스턴스를 생성하는 역할을 합니다.
그러나 new 연산자는 그 객체 자체를, 그리고 구현체로 생성하도록 강요합니다. new 연산자와 호응하는 생성자constructor는 마지막 라인에 return this; 가 생략되어 있습니다.
하지만 정적 팩토리 메서드는 해당 클래스의 하위타입이기만 하면 어떤 타입을 반환해도 관계없습니다.
햄버거 예시를 통해 살펴 보겠습니다.
서비스 제공자 프레임워크 service provider framework 이해하기
2022/09/17 14:51
자바
서문
Intellij에서 유용한 json 플러그인 두 가지를 소개하고자 한다. 요즘 플러그인 사용법 배우기도 힘든데, 사용법이 참 간단해서 좋다.
Pojo to Json
•
Dto 객체를 포함한 pojo 객체를 json 형식으로 만들어주는 플러그인. 빈 값으로 / 랜덤 값으로 채우는 두 가지 옵션을 제공. 여러 java 파일을 한꺼번에 변환할 수 도 있다.
•
한 가지 객체 변환
•
여러 객체 변환 후 확인
Json Viewer
•
단순히 json을 prettier하게 정렬해주는 json viewer이다. 설치하면 화면 우측에 json viewer라는 탭이 생성되며, 해당 탭을 통해 사용할 수 있다.
•
Google에서 아무 json이나 집어와서 돌려보았다.
Intellij json 플러그인 추천 - json viewer, pojo to json
2022/09/17 14:39
ETC
서문. 레디스가 뭔가요?
백엔드 개발자는 데이터베이스와 뗄래야 뗄 수 없는 관계라고 생각합니다. DB 관리에 불철주야 몰두하시는 DBA님들이 계시지만, 내 문제상황에 걸맞는 DB어플리케이션을 선택하고 개발하는 것은 백엔드 개발자의 몫 아닐런지요.
30년이 넘는 시간동안 백엔드 개발자에게 사랑받고 있는 RDBMS(Relational DataBase Management System)가 사랑받고 있지만, 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있습니다.
그럴 때 기존 RDBMS와 차별적인 강점을 갖춘 데이터베이스 관리 프로그램 들, NoSql을 찾게 됩니다.
NoSql?
NoSql은 기존 RDBMS 방식을 탈피한 데이터베이스를 의미합니다. 과거 스터디 때 정리한 글을 첨부합니다. 
NoSql의 종류
NoSql은 RDBMS가 아님 을 의미하므로, 여러 종류가 있습니다.
•
서로 연관된 그래프 형식의 데이터를 저장할 수 있는 Graph Store
•
Row가 아닌 Column 위주로 데이터를 저장하는 Column Store
•
비정형 대량 데이터를 저장하기 위한 Document Store
•
메모리 기반으로 빠르게 데이터를 읽어올 수 있는 Key-Value Store
레디스Redis가 뭐에요? 레디스 설치하기, 레디스 튜토리얼
2022/09/04 15:00
데이터베이스
들어가며
맘시터 기술블로그에 Git Flow에서 트렁크 기반 개발으로 나아가기 라는 글을 읽었습니다.
git flow와 trunk base flow을 비교하고, 각 flow의 장단점에 대해 비교하며, trunk 기반 개발을 한 경험을 소개해준 좋은 포스팅이었습니다! 
이 포스팅에 영감을 받아 최근 회사에서 개발하며 개발 당시엔 github-flow(trunk base)를, 런칭 이후엔 변형된 git flow를 사용한 경험을 공유하려 글을 작성합니다.
해당 flow를 채택한 이유와, 각 flow에서 어떤 장단점을 느꼈는지를 중심으로 작성하겠습니다. 다양한 개발자의 의견을 수렴한게 아닌, 저 개인의 경험을 토대로 작성한 글이니 참고해주세요.
바쁘다 바빠 현대사회
바쁜 현대인을 위한 두괄식입니다.
구분 | git flow | github flow |
개요 | 다섯 개의 브랜치를 중심으로 다양한 시나리오에 대처 가능한 브랜칭 전략 | main 브랜치와 feature 브랜치만을 두고, 항상 배포되는 main 브랜치를 중심으로 한 브랜칭 전략 |
언제 필요했어? | 서로 다른 배포주기를 가진 기능들이 있을 때
단순한 flow로 인해 다양한 상황에 대처하기 어려웠을 때 | 기능이 빠르게 베이스 브랜치에 병합될 필요가 있을 때
최신 기능이 항상 배포되어도 되는 환경일 때
CI / CD가 잘 갖춰져 있어 버그에 대한 대비가 잘 되어있을 때 |
장점 | 다양한 시나리오(롤백, 핫픽스, 운영배포 등)에 쉽게 대처 가능
서로 다른 배포시기를 가진 코드가 잘 못 딸려나갈 걱정이 없음 | 항상 코드가 최신 상태라는 심리적 안정감
기능 구현 시나리오가 단순하여 편리함 |
단점 | 별도의 배포관리자를 두어야 함
다양한 브랜치를 관리하며 쓸데 없는 머지 커밋이 많이 생김 | 배포 시기가 다른 코드가 딸려나가는 경우가 생김
배포가 자동화 되어 있지 않으면 자주 배포해야 하여 번거로움 |
프로젝트 환경
진행한 프로젝트의 환경은 다음과 같습니다.
구분 | 도구 |
배포 관리 시스템 | 쿠버네티스 |
배포 도구 | 젠킨스 |
프로젝트 아키텍처 | 도메인 별로 module을 두어 MSA 구축 |
버전 컨트롤 | gitlab 사용, 모든 코드를 한 개의 레포지토리에서 관리 |
배포 환경 | 개발 - 프론트엔드와 함께 확인할 수 있는 개발 환경
베타 - 사내 다른 모듈도 연동하여 QA를 진행 가능한 베타 환경
운영 - 소비자와 직접 접촉하는 프로덕션 환경 |
git-flow와 github-flow 비교체험기
2022/08/07 15:00
아키텍처
들어가며
웹 서버를 구축한 뒤, 화면단 없이 http 요청 자체를 검증하는 것을 API 테스트라고 하는데요, 운영상의 동작 확인이나 localhost 서버를 띄운 후 테스트 해보는 등 다양한 목적으로 수행됩니다.

메뉴 → Preferences → plugins → HTTP Client, 최근 버전에서는 내장되어있다.
기본적인 사용법은 아래 블로그를 참고해주셔요.

아직도 postman 쓰세요? Intellij http를 통해 api를 테스트해보자!
2022/07/10 00:00
ETC
들어가며
요즘 신규 프로젝트에 팀원으로 참가하며 마감에 맞추기 위해 어쩔수 없이 버려지는 기능이나, 추가로 인원이 보충되거나 빠지고, 출시 일정이 조율되는 등 여러가지 상황을 많이 겪습니다. 그러다 프로젝트 경영과 관련된 글을 소개받았습니다.
이 글은 XP (extream programming) 개발 방법론의 세 명의 창시자 중 하나로 유명한 론 제프리스(Ron Jeffries)의 블로그 글, 왕의 만찬(King Dinner)를 번역한 글입니다. 오래된 글임에도 불구하고 인사이트가 많아 공유합니다.
효과적인 팀 경영을 위한 4가지 요소인 자원(Resources), 범위(Scope), 품질(Quality) 및 시간(Time)이 서로 어떻게 영향을 미치는지 보여주는 우화입니다.
핵심 메시지는 최대한 그대로 옮기려고 했으나 이야기 부분은 자의적으로 의역한 부분이 많고, 소제목을 추가했습니다.
(구글 번역기 감사합니다.)
옛날 옛적에..
위대한 저녁 만찬 계획
수천 명의 가까운 친구들과 만찬을 하려 했던 위대한 왕이 있었습니다.
그는 수석 장인을 불러 만찬 계획을 알렸습니다. 왕은 장인에게 모든 것이 금으로 되어 있고 정교하게 조각된 보석으로 장식된 최고의 테이블 세팅을 원한다고 말했습니다.
수석 장인은 몇 가지 방안을 스케치 해보고 테이블 세팅 계획에 대해 왕에게 동의를 구했고, 몇 주 후에 다시 만나서 테이블 세팅 일정을 논의하기로 합의했습니다.
몇 주가 지나고 수석 장인이 보고하러 왔습니다. 그는 초기 버전의 테이블 세팅, 왕의 검토, 그리고 최종 테이블 설정의 제작을 보여주는 일정표를 왕에게 보여주었습니다. 일정표는 11월에 마칠 예정이었지만 왕은 날씨가 좋은 10월에 파티를 하길 희망하였습니다. 수석 장인은 10월까지 완료할 수 있도록 일정을 재산정해 다시 논의하기로 합의했습니다.
저녁 만찬 프로젝트의 시작
개발 프로젝트를 어떻게 경영해야 할까? - 왕의 만찬(Kings Dinner) 이야기
2022/06/26 18:00
ETC
우아콘 2020 - 배달의 민족 마이크로서비스를 제 글로 정리한 내용입니다.
개요
MSA, 시스템 신뢰성, event 중심 설계, CQRS에 대해 다룹니다.
Why 왜 필요하며
How 어떻게 도입했는지
What 어떤 결과가 도출되었는지
배달의 민족 마이크로서비스 여행기
MSA
Why - 왜 MSA를 도입해야 했을까?
배달의 민족의 초기 서버는 PHP, Ruby DB의 스펙으로 작성되었습니다.
하지만 예컨데 리뷰 작성이 안 된다고 하여 가게 상품 목록을 못 보는 일은 없어야 겠죠. 리뷰와 관련된 코드를 따로 분리하여 별도 서버에서 처리한다면, 리뷰 장애가 발생하더라도 사용자는 상품 주문에는 영향을 받지 않을겁니다.
MSA, 배달의 민족 마이크로서비스 여행기 정리
2022/05/29
아키텍처
Load more
Table
Search
포스트
카테고리
작성일
태그
Load more
Categories ──
ETC
Profile ──

안녕하세요
백엔드 주니어 개발자 성시형입니다~! 클린코드와 실없는 개발수다를 좋아합니다.











