본문 바로가기

기술7

[켄트 백의 TDD] 테스트 주도 개발(TDD) TDD(Test Driven Development)는 간단히 말해 테스트코드를 작성하고 해당 테스트코드가 정상적으로 실행되고 정확한 결과가 나오도록 확인하며 로직을 작성하면서 개발하는 방법이다. TDD의 궁극적인 목표는 작동하는 깔끔한 코드(Clean Code)를 만드는 것이다. 깔끔하지 못한 코드는 기능개선 및 유지보수를 힘들게하고 코드 한 줄의 수정이 불러올 후폭풍을 두렵게한다. 자동화된 테스트로 개발을 이끌어 나가서 우리의 개발시간을 효율적으로 사용할 수 있게 하는것이 바로 TDD(테스트 주도 개발)이다. 빨강 : 실패하는 테스트 코드를 먼저 작성한다. Compile조차 되지 않을 수 있다. 초록 : 빨리 테스트가 통과되도록 한다. 무슨짓(코드복사 등)을 해도 좋다. 리팩토링 : 중복 코드 제거 클.. 2021. 5. 24.
[Kafka] Apache Kafka란? Apache Kafka(아파치 카프카)는 LinkedIn에서 개발된 분산 메시징 시스템으로써 2011년에 오픈소스로 공개되었다. 대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다. Kafka란? 분산 스트리밍 플랫폼 데이터 파이프 라인 구성시, 주로 사용되는 오픈소스 솔루션 대용량의 실시간 로그처리에 특화되어 있는 솔루션 데이터를 유실없이 안전하게 전달하는 것이 주목적인 메세지 시스템 클러스터링이 가능하므로, Fault-Tolerant한 안정적인 아키텍처와 빠른 퍼포먼스로 데이터를 처리 수평적으로 서버의 Scale-Out이 가능함 pub-sub모델의 메세지 큐 * Fault-Tolerant : 시스템내, Fault (장애)가 발생하더라도 시스템.. 2020. 5. 26.
[Naming Convention] 네이밍 컨벤션 케이스별 정리 Lower Camel Case 단봉 낙타 표기법 일반적으로 Camel Case로 불림 단어의 연결이 있을때, 두번째 단어부터 첫 글자는 대문자로 표시 ex) studentName / productPrice Lower Case Strategy 단어의 연결을 신경쓰지 않고, 모든 알파벳을 소문자로 표시 ex) studentname / productprice Upper Camel Case 쌍봉 낙타 표기법 단어의 연결이 있을때, 첫번째 단어부터 첫 글자는 대문자로 표시 ex) StudentName / ProductPrice Snake Case Strategy 단어의 연결이 있을때, 각 단어의 사이에 언더바를 기입하여 표시 ex) student_name / product_price KebabCaseStrateg.. 2020. 3. 2.
[HTTP] HTTP/1.1(HyperText Transfer Protocol)의 구조 HTTP(HyperText Transfer Protocol)란? 하이퍼텍스트(hypertext)는 인터넷에서 사용되는 웹문서 형식(HTML)을 생각하면 이해가 빠르다. 우리가 인터넷에서 사용하는 웹사이트는 종이책 같은 텍스트(text)와 달리 마우스를 누르면 원하는 부분을 이곳저곳 열어갈 수 있다. 사용자는 작가가 정해놓은 한 가지 순서로 글을 읽는 것이 아니라 자기가 원하는 부분만을 선택하여 독서할 수 있다. (문학비평용어사전, 2006. 1. 30., 한국문학평론가협회) HTTP는 바로 위에서 설명된 hypertext를 전송하는 프로토콜이라고 생각하면된다. 우리가 웹(Web) 브라우저를 키고 링크를 클릭하여 다른 사이트로 접속하는 행위들이 모두 http를 통해서 이루어지는 것이다. 1. HTTP의 구.. 2020. 2. 4.
[RESTful API] 설계 방법 RESTful API 설계 가이드 1. RESTful API 설계 가이드 본 문서는 REST API를 좀 더 RESTful 하게 설계하도록 가이드할 목적으로 만들어졌다. 따라서, 기본적인 REST API 개념 설명은 아래의 링크로 대신한다. REST API 제대로 알고 사용하.. sanghaklee.tistory.com REST API 디자인 가이드 REST API 디자인을 보면, REST 사상에 맞춰서 제대로 디자인 (CRUD를 HTTP method에 맞춘)하기도 어렵고, URI Convention등이나 보안, 버전 관리등 고려할 사항이 많다. 이번 글에서는 REST API를 디자인에 대한.. bcho.tistory.com 2020. 1. 16.
DNS DNS https://m.blog.naver.com/PostView.nhn?blogId=shj1126zzang&logNo=90193677759&proxyReferer=https%3A%2F%2Fwww.google.com%2F [패킷 분석] DNS (Domain Name System) DNS에 관해 알아보고 분석을 해보겠습니다. 1. DNS(Domain Name System)란?DNS가 무엇일까요?... blog.naver.com 2019. 11. 13.
WAS(Web Application Service) 구조 https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html [Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 2019. 11. 13.