정말 오랜만에 포스팅인데, 이번 포스팅에서는 Effective JAVA 와 같은 책에서 정말 많이 언급되는 Composition, Aggregation, Delegation 에 대해서 정리해보려고 한다. 이 세가지를 함께 정리하는 이유는 굉장히 비슷하면서도 다르면서도.. 그런 개념들이기 때문이다! 개념에 대해서 설명하기에 앞서 내가 프로젝트에서 Delegation 을 활용한 사례에 대해서 소개하려고 한다. 최근에 프로젝트에서 외부 업체로부터 SDK 를 제공받아 개발을 하게 되었는데, 해당 SDK 의 기능중에서 한 가지는 byte[] 타입의 인증서를 EckaCertificate 객체로 파싱해주고 이를 통해 인증서 정보를 읽어올 수 있도록 하는 것이었다. 하지만 해당 객체의 메소드중 하나인 eckaCerti..
성능테스트란? 쉽게 말하면 내가 만든 웹 서버(API)가 얼마나 많은 사용자들을 감당할 수 있는지 테스트하는 것을 말한다. 이외에도 두 가지 설계에 대해서 어떤 설계가 더 좋은 성능을 내는지 확인하기 위해서도 사용될 수 있다. 성능의 지표 성능을 판단하는 대표적인 지표로는 Throughput(처리량)과 Latency(지연시간)이 있다. Throughput 은 시간당 처리량을 의미하고 TPS(Transaction per seconds), RPS(Request per seconds) 와 같은 세부항목이 있다. 이러한 수치들은 해당 서비스가 1초당 어느정도의 작업을 처리할 수 있는지 나타내기 때문에 높은 수치일수록 성능이 좋다고 말할 수 있다. Latency 는 지연시간을 의미하고 이는 시스템이 클라이언트로부..
Configure Service? 최근에 많이 사용되는 MSA(Micro Service Architecture)는 여러 개의 서비스를 분산 시스템으로 구성한다. 이러한 분산 시스템에서 Server/Client 구성에 필요한 application.yml 파일과 같은 설정정보를 외부 시스템에서 관리해주는 서비스를 말한다. 이러한 Configure Service 는 실제 설정파일이 저장되는 저장소가 별도로 존재하고 이러한 저장소를 Configure Service 와 연결하게 된다. 따라서 설정파일이 저장되는 저장소를 어떤 것으로 할지도 결정해야 한다. 그리고 Configure Service 를 구성할 때 고려해야되는 부분중 하나는 설정 값이 변경되었을 때의 동작이다. 서버 재기동 (최악의 방법이다) Actua..
https://ch4njun.tistory.com/242 [Git] Git 좀 세울줄 아는 남자-1 이번에 인턴을 진행하게된 곳에서 Git 에 대한 교육을 받게 됐는데 해당 교육에서 정말 많은 것을 배울 수 있어 블로그에 정리해보려 한다. 또, 내가 그동안 사용했던 Git 은 그저 백업의 목적만을 ch4njun.tistory.com 이번 포스팅에서는 첫 번째 포스팅에 이어서 Git Branching Model 에 대해서 설명하려고 한다. 기본적으로 Git 에 존재하는 명령어는 안다는 전제하에 포스팅을 작성할 것이기 때문에 반드시 첫 번째 포스팅부터 보는 것을 추천한다. Git Branching Model 우선 늘 그렇듯이 왜 Git Branching Model 이 왜 필요한지에 대해서 이야기해보자. Gi..
이번에 인턴을 진행하게된 곳에서 Git 에 대한 교육을 받게 됐는데 해당 교육에서 정말 많은 것을 배울 수 있어 블로그에 정리해보려 한다. 또, 내가 그동안 사용했던 Git 은 그저 백업의 목적만을 위한 것이였으며 구글 클라우드랑 다를바가 없었다는 것을 깨닫게 되었다. 이번 강의는 두 가지 포스팅을 통해서 정리할 것이며 첫 번째 포스팅에서는 Git 에 대한 간단한 설명과 왜 사용하는지, 그리고 Git 에 존재하는 여러가지 명령어들에 대해서 설명하려고 한다. 물론, 많은 사람들이 아는 기본적인 내용이겠지만 나한테는 정말 유익했고 꼭 다시한번 상기시키고 싶어서 정리를 하게되었다. VCS(Version Control System) 자세한 내용에 들어가기에 앞서 Version Control System 이 무엇..
JWT JWT는 Json Web Token의 약자로 토큰에서 사용되는 컨텐츠를 Json으로 구성해 토큰화하는 시스템을 말한다. 즉, Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Web Token 이라고 설명할 수 있다. JWT가 다른 토큰과 다른점은 토큰 자체가 데이터를 가지고 있다는 점이다. JWT를 사용하면 토큰 자체가 데이터를 가지고 있기 때문에 서버가 stateless할 수 있다. 또한 인증을 위해 데이터베이스를 조회해야 하는 오버헤드를 줄일 수 있다는 장점이 있다. JWT를 사용하지 않을 때는 발급한 토큰을 서버측 DB에 저장한 후 올바른 토큰인지 검증했다. 따라서 여러 개의 서비스를 사용할 경우 저장된 토큰을 공유해야하는데 문제가 발생하고 위에서 언급한 데이터베이스 조회시 필요한 오..