적정 소프트웨어 아키텍처 후기

이미지
 안녕하십니까. 이번에는 적정 소프트웨어 아키텍처라는 책을 읽고 리뷰를 합니다. 적정 소프트웨어 아키텍처 특징 이 책은 아키텍처를 잡는데에 있어서 리스크를 위주로 생각하는 방법을 도입하는 책입니다. 그래서 책 전체적으로 다이어그램이나 그런게 많은 편입니다.  다이어그램 다이어그램이 아키텍처를 배우기 위한것은 아니고 이런 식으로 하였으나 이런식으로 생각한다는것에 초점이 되어 있습니다. 위의 예시를 보면 미디어 플레이어 시스템이라고 되어있으나 미디어 플레이어를 위했다기 보다는 다이어그램의 변화에 중점이 되어있습니다. 경험적 인사이트가 필요한 책 이론위주의 책이긴 하지만 좀더 쉽게 이해하기 위해서는 경험이 필요합니다. 아래의 지나친 설계 부분에 대하여는 설계를 중심으로 하면 산으로 간다는 말인데요. 이를 경험해봐야 그렇구나 하고 와닿는게 좀 많습니다.  waterfall의 단점 저연차 시니어에게는 글세 저는 현재 6년차 개발자입니다. 해당 책을 읽고 8장까지 읽다가 그만 읽었습니다. 읽지 않은 이유는 완전히 기술적이기보다는 이론 중심인점이 많습니다. 번역이 된 책이어서 그런건지 원래 이책이 그런건지 모르겠지만 살짝 잘 안읽히는 점이 많습니다. 신입 - 6년차의 개발자에게는 빠른 성장이 필요하지만 이런 책은 아직은 잘 모르겠습니다. 그래서 나중에 많은 경험을 쌓아보고 이책이 의미가 있는지는 추후에 다시 판단해보려고 합니다. 아직은 잘 와닿지 않네요. 

마이크로 서비스 패턴 후기

이미지
 안녕하십니까. 이번에는 마이크로 서비스 패턴라는 책을 읽어서 리뷰를 하려고 합니다.  이번책에서는 사진을 찍지 못해 버렸네요. 마이크로 서비스 패턴 MSA 패턴 : 사가, 이벤트 소싱 MSA에서의 분산 트랜잭션을 지원하기 위한 사가 패턴 등에 대하여 책에서 다룹니다. Eventuate tram(이벤추에이트 트램) 이라는 사가 프레임워크를 통해서 예시를 다루는 부분도 많습니다. 아직 국내에는 사가 기반 트랜잭션으로 구현된 회사가 별로 없을 것이라고 예상되는데요. 그런만큼 책을 통해서 많이 배울 수 있을것으로 보입니다. 처음 들어봤던 것 : 디비 로그 기반 이벤트 제가 이쪽 공부를 딥하게 한적은 없었던것 같습니다. 이 책을 읽으면서 약간 처음 들어본 기법이 있는데요. 디비 트랜잭션 로그를 통해 이벤트를 만드는 것이었습니다. transaction log tailing라고도 하는데요. 이런게 msa에도 사용된다는 것은 이번에 처음 알게 되었습니다. 코드 설명 예시 코드와 그에 대한 설명도 있습니다. 너무 과하지도 않으며 너무 적지도 않은 편입니다. 저는 당장 코드는 급하진 않아서 이해만 하려고 코드 부분은 건너뛰긴 하였습니다. 공개 깃허브 링크는 요기 .  읽어볼만한 책 MSA를 통해 분산 트랜잭션 등을 구현하는 책입니다. 서로 다른 도메인에서의 싱크를 맞추기 위함인데요. 너무 쉬운편도 아니고 너무 어려운 편도 아니라서 읽을만하다고 생각합니다.

데이터 중심 애플리케이션 설계 책 후기

이미지
안녕하십니까. 시니어 개발자이다 보니 시스템 설계에 대하여 관심이 생겨서 공부 중에 있습니다. 리서치를 해보니 " 데이터 중심 애플리케이션 설계 " 라는 책을 추천해주신 분이 많은데요. 저도 이번기회에 읽어보았고 간단하게 후기를 남겨보려고 합니다.   분산 시스템, 데이터 베이스 관점 데이터 중심이라는 주제에 알맞게 전체적으로 분산 시스템과 데이터 베이스라는 관점에 초점에 되어 있습니다.  RDB, NOSQL, 데이터베이스 확장 가능성, 고가용성, 병렬 처리 등에 초점이 되어있습니다.  학부 수준에서 배우는 수준에서 살짝 어려운 수준입니다.  더티 쓰기에 대한 내용 설계 보다는 이론에 중심 책 내용이 설계라고 되어 있습니다. 다만 설계하는 방법을 다루지는 않습니다. 설계보다는 이론적으로 확장 가능한 시스템을 만들기 위한 문제에 대한 이론, 고민 등에 대하여 다루는 부분이 있습니다.  예를 들어 다음과 같이 2PC라는 개념이 있고, 이의 단점을 극복하기 위한 3PC라는게 있다는 것을 알려줍니다. 하지만 이것만으로는 설계에는 도움되긴 어렵고, 이론적 지식에는 도움이 될수는 있습니다.  3PC의 도입 깊이가 깊은책 책의 깊이가 상당히 깊은 편입니다. 특정 구조에 대하여 어느 소프트웨어는 어느 구조를 쓰고 다른것은 어떤지가 예시로 작성 되어 있습니다. 실제 코드 단까지는 아니더라도 책을쓴 저자는 대부분의 소프트웨어에 대한 세밀한 아키텍쳐까지 이해한 수준이라고 생각이 되며 개인적으로는 존경스럽네요.  실제 디비들의 예시 주니어보다는 시니어에게 추천 제 기억상 이 책을 주니어때 한번 읽은 기억이 있습니다. 그때는 좀 어려웠었고 지금도 살짝 어렵긴 합니다. 그렇지만 책에 나온 몇몇 부분에 대하여는 실무를 하면서 고민을 하게 되니 책이 이해가 가는 부분이 많아지게 되었습니다. 예를 들어서 카프카를 통한 스트리밍, 분산 시스템을 위한 구현, 데이터를 큐브화 하여 사전에 질의를 위한 데이터 aggregation을 실제로 적용해본 경험이 있고 이러한 경험으로 책

가상 면접 사례로 배우는 대규모 시스템 설계 기초 후기

이미지
안녕하십니까. 기술 면접을 준비하기 위해서 가상 면접 사례로 배우는 대규모 시스템 설계 기초 라는 책을 읽게 되었습니다.  가능한 비용을 줄이기 위해서 근처에 있는 도서관에서 책을 빌렸습니다.  일반적인 면접에서 시스템 설계까지 물어보지는 않지만, 물어보는 면접을 할 수도 있기에 준비하였습니다.  책의 두께는 짧은 편입니다.  갓 주니어라면 내용이 어려울 수 있으나, 연차가 살짝 되면 어렵지 않고 빨리 읽히는 책입니다. 내용은 일반적인 시스템 설계에 대한 유투브나 책 등에서 볼수 있는 예시를 다룹니다. 위의 사진과 같은 검색어 자동완성 시스템도 널리 알려진 문제입니다.  페이스북 피드같은것도 알려진 문제로 인터뷰에서 자주 나올듯 합니다.  비슷한 유투브로는 code karle가 있습니다. 여기서는 영어 컨텐츠이며 각종 회사에 대한 예시 아키텍쳐를 다루고 있습니다. 제가 느낀 이책의 장점은 다음과 같습니다. 시스템 디자인에 대하여 인터뷰 형식으로 직접적으로 다룬책. 대부분의 시스템 디자인 유투브 칼럼은 영어권인점. 여기서는 한글로 다룸.  두께는 두껍지 않지만 내용이 알찬편.  이번에 시스템 디자인을 공부하면서 여러 자료를 보고 있지만 이 책을 통해서 많이 배우게 되었습니다. 

고려대학교 컴퓨터정보통신대학원 야간대학원 최신 후기

이미지
안녕하십니까.  이전에 고려대학교 야간대학원 컴퓨터정보통신대학원에 대하여 글을 써본적이 있습니다. 1탄   2탄 최근에 아는 사람들 지원한 사람이 있어서 간략하게 글을 남겨 봅니다. 경쟁률 30명 뽑는 자리에 약 140명정도 지원하였다고 합니다. 특정 학과에서만 저 정도이지 총합하면 얼마일지는 잘 모르겠습니다. 제가 지원할때도 이정도 하였던거같습니다. 면접 강화 면접이 좀 강화되었습니다. 강화되었다는 기준은 전공 지식을 물어볼 수 있습니다. 기존에는 지식 자체를 물어보지 않았던점이 있었고 이는 당연한 변화라고 생각 합니다. 점차적으로 나라에서도 컴퓨터 관련 전공에 대한 지원이 강화되는 점이 있으니 커트라인은 높아져야 한다고 생각 합니다. 지원자 보통 지원하는 사람들은 일반적인 회사원들이 많이 지원합니다. 개발자가 좀 더 많을수는 있습니다. 이번에도 비슷비슷 하였다고 합니다. 따땃한 소식은 여기까지

Spring Boot에 Swagger 붙이기

이미지
 안녕하십니까. 이번 포스팅에서는 Spring Boot에 Swagger API를 붙이는 방법에 대하여 알아 보려고 합니다. gradle 설정 gradle을 사용하실 경우 아래의 한줄을 build.gradle의 dependency에 추가해 줍니다. implementation 'io.springfox:springfox-swagger2:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0'   Maven 설정 Maven을 사용하실 경우 아래의 설정을 추가하시면 됩니다. <dependency > <groupId > io.springfox </groupId > <artifactId > springfox-swagger2 </artifactId > <version > 3.0.0 </version > </dependency > <dependency > <groupId > io.springfox </groupId > <artifactId > springfox-swagger-ui </artifactId > <version > 3.0.0 </version > </dependency >   설정 파일 추가 gradle, maven을 통하여 코드를 불러오셨으면, 이에 따라 swagger 설정을 해야합니다. 다음과 같이 파일을 하나 생성하며 @Bean으로 등록해 주시면 됩니다. 코드는 간단하게 모든 api에 대하여 스웨거를 빌드한다는 내용 입니다. @Configuration @EnableSwagger2 public class SwaggerConfig {   @Bean public Docket swaggerApi ( ) { retur

전문연구요원 지원 방법

이미지
 안녕하십니까. 이전 포스팅에서 전문연구요원의 편입 절차 에 대하여 다룬적이 있습니다. 이번 포스팅에서는 편입하기 이전에 전문연구요원 업체에 지원하는 과정 및 여러 팁에 대하여 다루어보려고 합니다.  1. 전문연구요원 지원 요건 일단 첫째로 전문연구요원 지원 요건에 대하여 알아보도록 합시다.  석사 학위를 취득한 사람 이 전문연구요원에  편입 이 될 수 있습니다. 이는 말 그대로 전문연구요원 편입 요건입니다.  1.1 대학원 졸업 날짜  위의 편입 요건 중 중요한점 하나는 대학원 졸업 날짜 입니다 .예를 들어서 석사 과정 졸업 이후 졸업장이 8/25일에 나온다고 합시다. 그러면 8월 25일날 편입 신청을 하고 1주일 이내에 편입이 완료되게 됩니다. 그러면 대략적으로 9월부터 전문연구요원 날짜를 카운팅 하게 됩니다. 대학원 졸업 논문 이후로 시간이 날 수 있는데요. 미리 업체에 들어가서 업무를 실행하더라도 복무일은 계산하지 않게 됩니다.  1.2 관련 전공 유무 가끔 전문연구요원 편입에 걸림돌이 될 수 있는게 관련 전공 유무 입니다. 예를 들어서 나는 컴공 졸업하였고 컴공 업체에 편입하였다면 전혀 문제가 없습니다. 더 디테일하게 들어가서 이미지 처리를 전공하였고, 이미지 처리 전문연구요원에 편입하게 되었다면 금상첨화입니다. 하지만 모두가 좋은 전공을 통해서 좋은 전문연구요원 업체에 편입을 할 수 있지 않은것이 현실입니다. 당장 군대 처리가 급선무이기에 전공과 약간 삐끗한 업체에 편입이 될 가능성이 충분하고 누구는 그러한 고통을 겪게 되는데요. 이러한 경우에는 편입이 거절 당할 수 있습니다. 이럴경우 지원자가 할 수 있는 것은 두가지입니다. 1. 가능한 다른 업체 알아보기.  2. 내가 그 자리에 적합한 이유를 병무청에 호소. 위의 두가지 방법중 1은 말할것도 없고, 2는 어려운 방법이지만 가능성이 없는 이야기는 아닙니다. 실제로 이전의 경험을 살려서 잘 된 케이스가 있다고는 들은적이 있습니다.  2. 전문연구요원 업체 알아보기 전문연구요원 업체에 지원하기 위해