이 글을 작성하게 된 계기는 CI/CD와 무중단 배포의 차이점에 대해 궁금하게 되어 시작하게 되었습니다. 우선 CI/CD와 무중단 배포의 개념을 설명 한 후 어떤 점이 다른지 설명하겠습니다. CI/CD 란? 신입 개발자들이 처음에 개발을 진행할 때에는 서버에 코드를 올리는 것이 아닌 보통 로컬에서 진행하게 됩니다. 하지만 개발자는 결국 결과물을 보여줘야하는 직업이기에 제작한 소프트웨어를 서버에 올려 배포한 후 사용자에게 제공해야 합니다. 어떻게 하면 사용자에게 소프트웨어를 제공할 수 있을까? 아래의 순서를 따라 제공하게 됩니다. 1. 컴파일 우선, 우리가 만든 코드를 컴파일 합니다. 컴파일이란? - 우리가 만든 프로그래밍 언어를 기계가 이해할 수 있는 기계어로 변환하는 작업 우리가 사용한 Java, C ..
CS/개념 정리
프레임워크의 정의 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다. 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 class, method들을 구현하면 됩니다. 프레임워크의 장단점 장점 가이드를 제공함으로써 프로그램을 체계적으로 관리할수 있다 기본적인 설계와 라이브러리를 제공하여 개발 속도를 향상시킨다 코드의 재 사용성이 높고 확장성이 좋다 단점 각 프레임워크에 따른 공부가 필요하다 자유롭고 유연한 코드를 개발이 불가능하다( 프레임워크가 짜놓은 틀 안에서 개발해야 하기 때문에) 프로젝트의 용량이 증가한다 라이브러리의 정의 소프트웨어를 개발할 때 컴퓨터 프로그램..
문득 SpringBoot로 웹을 개발하면서 궁금증이 생겼습니다. "애는 뭐하는 놈일까?" 먼저 HikariPool을 알기 전에 커넥션 비용이라는것이 뭔지 알아야 했습니다. 커넥션 비용 WAS(Web Application Server)와 데이터베이스 사이의 연결에는 많은 비용이 듭니다. MySQL 8.0 버전을 기준으로 INSERT 문을 수행할 때 필요한 비용의 비율은 다음과 같습니다. (괄호의 숫자가 비용의 비율입니다.) Connecting (3) Sending query to server (2) Parsing query (2) Inserting row (1) Inserting index (1) Closing (1) 즉, 서버가 DB를 연결하기 위한 Connecting 비용이 가능 큰 비율을 차지하게 됩..
❓TDD? TDD(Test Driven Development)는 테스트 주도 개발입니다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위에 테스트 케이스를 작성하여 이를 통과하는 코드를 추가하는 단계를 반복하여 구현합니다. ❓TDD 개발주기 [Write Failing Test] 는 실패하는 테스트 코드를 작성합니다 [Make Test Pass]는 테스트를 성공하기 위한 실제 코드를 작성합니다 [Refactor]는 중복 코드를 제거, 일반화 등의 리팩토링을 수행합니다 중요한 것은 실패하는 코드를 작성할 때까지 실제 코드를 작성하지 않는 것과, 실패하는 테스트를 통과할 정도의 최소 실제 코드를 작성해야 합니다. 이를 통하여 실제 코드에 대해 기대되는 바를 보다 명확하게 정의함으로써 불필요한 설계를 피..
이 글은 "구글 엔지니어는 이렇게 일한다" 책을 보면서 요점 정리를 하는 글 입니다. http://www.yes24.com/Product/Goods/109182479 구글 엔지니어는 이렇게 일한다 - YES24 구글은 어떻게 개발하고 코드를 관리하는가지난 50년의 세월과 이 책이 입증한 사실이 한 가지 있다. 바로 `소프트웨어 엔지니어링의 발전은 결코 정체되지 않는다`라는 것이다. 빠른 기술 변화 www.yes24.com 프로그래밍과 소프트웨어 엔지니어링의 가장 큰 차이 시간 (규모) 확장 실전에서의 트레이드오프(trade-offs) 시간이 프로그램에 미치는 영향 "이 코드의 예상 수명은?" 이라는 질문을 던져보면 좋습니다. 단순히 구동 수명(execution lifetime)이 아니라 유지보수 수명(m..