%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%84%A4%EA%B3%84

2021-08-17
브런치에서 뉴스를 빠르고 유익하게 소비하는 사례 로 썼던 글을 popit의 주요 독자들이 흥미로워 할 주제라 생각에 이곳에도 옮겨봅니다. 두 가지 이야기를 하려고 합니다. 트레이드오프 즉, 상충관계에 대한 생각 개발자에게 아키텍트로 나아가는 길 먼저 트레이드오프는 과거 제가 소프트웨어 아키텍트 로 일할 때, 가장 자주 다루던 개념이자 주요 관심사였습니다. 서로 다른 이해관계를 갖는 참여자 사이에서 소프트웨어가 나아갈 길을 다룰 때, 선택의 갈림길에 항상 만나는 것이 트레이드오프였죠....
2020-04-15
2016년, 중국 패션 리테일 영역의 클라우드 서비스 회사가 되겠다는 야심 찬 희망을 품고 아기 발걸음 [1] 을 시작했고, 2020년 현재 아래와 같은 구성을 갖추었다. 처음부터 이런 구성을 그려놓고 차근차근 갖춰 나간 것은 아니었다. 2016년 봄, 알리 클라우드에 3대의 리눅스 서버를 구매해서 1대에 대충 스테이징 환경과 각종 관리 툴을 세팅하고 2대 서버에 운영을 위한 최소한의 구성만 갖춘 채 첫 번째 기능을 출시했다. 매번 필요할 때마다 점진적으로 아키텍처를 개선해 나갔고, 4년이 지난 지금 꽤 그럴싸한(?) 모양을 갖추게 되었다. 지금 우리가 갖추고 있는 기술 셋을 소개해본다....
2020-01-09
어제 글쓰기 흥미 [1] 를 자극하는 글 이 올라왔다. 조금 더 정확하게 말하면 글에서 인용한 이미지가 내 시선을 잡아 끌어 여러 가지 생각을 만들도록 했다. 그래서 아래 이미지에 기초해 주관적인 감상을 쓴다. 빙산의 일각을 비교해보자 그림이 주는 시각적 흡수가 오해일 수 있어 오류를 줄이려 원문을 찾아보았으나 원하는 설명은 없었다. 후에 확인을 하면 고치기로 하고 가정속에서 글을 써보자. 그림을 그린 이가 비교하려는 두 개의 빙산 즉, On-Premise와 Cloud Computing 이라는 묵직한 결정에 대해서 드러난 부분의 크기를 일부러 같은 사이즈로 그렸을까? 알 수 없다. 스스로 그리는 사람이라고 생각하고 상상해보자. 그러면, 그린 이의 의도를 짐작...
2019-10-17
아침에 출근했더니 동료 가 나에게 링크 를 하나 던지며 이렇게 말했다. 위 블로그가 어제 말한 오퍼레이션 캐쉬 설명하는것 같은데 한번 검토해주실수있을까요? Why duplication isn’t always a bad thing in micro-services CTO님이 데이터 중복이 필요할 때가 있다고 설파하던 기억이 난다. 그 당시 대부분의 개발자들이 못알아듣는 눈치였는데, 역시 사람들이 배워서 써먹는 데에는 자기만의 시간이 있다. 귀로 듣거나 책으로만 읽어서는 알 수 없고, 자기 삶에서 그 장면을 만나야 한다. 반갑게도...
2019-08-22
"이 글은 책을 소개하는 글입니다. 과도한 책 광고가 포함될 수 있습니다" 번역이라는 어두컴컴한 동굴을 빠져나와 출간을 앞두고 있습니다. 책에 대한 소개보다는 "번역"이라는 일을 시작하게된 개인적인 경험을 풀어써 보고자 합니다. 2010년... 때는 바야흐로 2010년. 팀을 이끌던 선배가 "질질 끌던" 번역 작업을 이제 마무리해야 한다며 리뷰를 부탁했습니다. 그 책은 켄 슈와버가 쓴 " 엔터프라이즈 스크럼 "이었습니다. 번역본 리뷰라는 것이 원서는 보지 않은 채, 번역된 초고를 읽으면서 어색한 문장이나 단어들, 오탈자를 제안하는 일이라는 것도 그때 처음 알았습니다. 그리고 번역본 초고가 원서 없이는 그 내용을 이해하는 것이 어려운 존재라는 것도 그때 알았습니다. 결국 리뷰를 하면서도 원서를 뒤적이며 꽤나 열심히 제안을 많이 해 드렸습니다. 그때 저의 성실함을 눈여겨 보신 선배가.......
2019-08-05
이전 포스팅 ‘ 테스트 용이성(Testability) 향상을 위한 DI(Dependency Injection) ’에서 이어지는 내용이다. 종속성 문제 테스트 코드 없이 개발할 때는 잘 인지하지 못하다가 테스트 코드를 넣으려고 할 때 만나는 문제 중 하나로 종속성 문제가 있다. 테스트 환경에서 특정 객체 하나를 생성하기 위해서 너무 많은 객체가 필요해지는 상황과 특정 객체가 내부적으로 다른 객체를 직접 생성하는 상황이 그것이다. 이런 상황은 몇 가지 방법으로 개선을 할 수 있다....
2019-07-11
[원본글] https://ericygkim.wordpress.com/2019/07/11/aws-ebselastic-block-storage-의-비용-최적화/ 애플리케이션 개발 후 AWS에 애플리케이션을 설치할 때 성능, 가용성, 확장성, 비용, 서비스 특성등 많은 요구사항들을 고려하여 복잡한 고민을 거쳐 EC2 인스턴스 사이즈등  AWS 자원들을 선택하게 됩니다. 그 중 중요한 요소 중 하나가 EC2인스턴스나 RDS에 연결되는 스토리지인 EBS(Elastic Block Storage)를 선택하는 일인데, 성능 및 비용까지 고려해서 선택하는 과정은 많은 고민을 할 수 밖에 없습니다.  EBS 볼륨의 크기를 정하는 것도 중요하지만 그것보다 더 중요한 것은 EBS 볼륨의 종류를 선택하고 성능과 비용 최적화 하는 것입니다. 얼마나 빠른 EBS 볼륨을 선택하는냐에 따라 애플리케이션, 데이터베이스의 성능에 큰 영향을 미치게 됩니다. 또한 EBS 볼륨의 유형에 따라 비용이 크게 달라집니다.  그러므로 요구되는 성능과 비용을 고려하여 적절한 스토리지 유형과 크기를 현명하게 선택하여야 합니다. 이와 관련된 기본 지식과 약간의 노하우를 공유할까 합니다....
2019-06-20
해당 코드는 Github 를 확인해주세요. JpaRepository의 쿼리 메서드를 통해서 간단한 쿼리들을 아래 예제 처럼 쉽게 만들수 있습니다. 유사한 쿼리가 필요해지면 쿼리 메서드를 지속적으로 추가해야 하는 단점이 있습니다. 이런 경우에 QuerydslPredicateExecutor 를 사용하면 매우 효과적입니다. QuerydslPredicateExecutor QuerydslPredicateExecutor 코드의 일부입니다. Predicate 를 매개변수로 받고 있기 때문에 Predicate를 통해서 새로운 쿼리를 만들수 있습니다. AccountRepository 적용하기...
2019-06-19
해당 코드는 Github 를 확인해주세요. Spring Guide Test 전략 가이드 Exception 전략 가이드 Domain 객체 가이드 외부 API 가이드 Service 적절한 크기 가이드 Directory 가이드 패키지 구성은 크게 레이어 계층형, 도메인형 이렇게 2 가지 유형이 있다고 생각합니다. 각 유형별로 간단하게 설명하고 제 개인적인 Best Practices를 설명하겠습니다. 계층형 계층형 구조는 각 계층을 대표하는 디렉터리를 기준으로 코드들이 구성됩니다. 계층형 구조의 장점은 해당 프로젝트에 이해가 상대적으로 낮아도 전체적인 구조를 빠르게 파악할 수 있는 장점이 있습니다. 단점으로는 디렉터리에 클래스들이 너무 많이 모이게 되는 점입니다....
2019-06-16
해당 코드는 Github 에 공개되어 있습니다. 실무에서 Lombok 사용법 에서 기본적인 Lombk 사용법과 Builder 사용법을 간단하게 정리 한 내용을 먼저 참고하면 좋습니다. JPA를 이용하면 엔티티 객체들을 Builder 기반으로 생성하는 것이 흔한 패턴입니다. 이러한 경우 Builder의 문제점들과 이것을 더욱 안전하게 사용하는 방법에 대해서 이야기해보겠습니다. Builder로 안전하게 생성하자 JPA 엔티티 객체들에 Builder 어노테이션을 이용해서 엔티티 객체를 Builder를 이용하는 것이 흔한 패턴입니다. 이 패턴의 장단점을 알아보고 더욱 안전하게 객체를 생성하는 방법을 소개하겠습니다. Builder 패턴을 사용하면 다음과 같은 장점이 있습니다....
더보기