본문 바로가기
  • Where there is a will there is a way.

개발/기타개발25

객체 지향 설계 5단계 무엇을 개발해야 하는지 명확하게 이해하지 못한 상태에서 코딩부터 시작하는 개발자는 회사의 입장에서 시간과 돈을 낭비하게 만들며 더 심각한 문제를 만들 수 있다. 1단계 모호성의 해소 ( 비즈니스 파악 ) 객체 지향 설계는 우선 누가 그것을 사용할 것이며 어떻게 사용할 것인지 파악하는 것이 중요하다. 2단계 핵심 객체의 설계 ( 모델 설계 ) 핵심 객체가 무엇인지 생각해봐야 한다. 예를 들어, 식당을 객체 지향적으로 설계한다고 하면 Table, Guest, Party, Order, Meal, Employee, Server, Host 등이 있을 수 있겠다. 3단계 관계 분석 ( 모델 관계 설정 ) 어떤 객체에 속해 있는가? 다른 객체로부터 상속 받아야 하는 객체는 있나? 다대다 인가 일대다 인가? 4단계 행.. 2020. 3. 26.
도커 컨테이너 자원 할당 제한 컨테이너를 생성하는 run, create 명령어에서 컨테이너의 자원 할당량을 조정하도록 옵션을 입력할 수 있다. 아무런 옵션을 입력하지 않으면 컨테이너는 호스트의 자원을 제한 없이 쓸 수 있게 설정되므로 제품 단계의 컨테이너를 고려한다면 컨테이너의 자원 할당을 제한해 호스트와 다른 컨테이너의 동작을 방해하지 않게 설정하는 것이 좋다. 컨테이너의 자원 할당 옵션을 설정하지 않은면 호스트의 자원을 전부 점유해 컨테이너들뿐 아니라 호스트 자체의 동작이 멈출 수도 있다. 현재 컨테이너에 설정된 자원 제한을 확인하는 가장 쉬운 방법은 docker inspect 명령어를 입력하는 것이다. docker inspect a6dba55d667f [ { "Id": "a6dba55d667f2b618cf62ed2131b9050.. 2020. 2. 1.
도커 컨테이너 로깅 컨테이너 내부에서 어떤 일이 일어나는지 아는 것은 디버깅뿐만 아니라 운영 측면에서도 중요하다. 특히 쿠버네티스나 랜처 도커스왐등의 devops tool 에서 컨테이너 로깅은 굉장히 유용하게 사용된다. 애플리케이션 레벨에서 로그가 기록되도록 개발해 별도의 로깅 서비스를 쓸 수도 있지만 도커는 컨테이너의 표준 출력 과 에러 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공한다. 보통 도커의 로그를 확인할땐 다음과 같은 명령어를 작성한다. docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 25ed5cb9492d redis:5.0.3 "docker-entrypoint.s…" 3 months ago Up 36 hours 0.0.0.. 2020. 2. 1.
리팩토링 리팩토링은 어떨 때 필요한가 같은 작업의 삼진 아웃 때 어떤 작업을 처음 할 땐 그냥 하고, 비슷한 작업을 두 번째 해야 할 땐 중복 작업이라 좀 망설여져도 일단 그냥 하고, 세번째 하게 되면 그때 리팩토링을 실시하는 것이다. 기능을 추가 할 때 소프트웨어에 새 기능을 추가해야 할때 이 시점에 해야 하는 첫째 이유는 코드를 이해하기 쉽게 만들기 위해서다. 버그를 수정할 때 주로 코드를 이해하기 쉽게 만들려고 리팩토링한다. 코드의 기능을 파악하려다 이해하기 힘들면 이해하기 쉽게 만들 려고 리팩토링을 실시한다. 리팩토링을 하고나면 버그 찾기가 쉬워진다. 코드를 검수할 때 코드 검수를 통해 개발 팀원 모두가 코드를 파악하게 되며 선임, 개발자가 경험이 적은 개발자에게 지식을 전수하는 결과도 얻게 된다. 리팩토.. 2019. 7. 25.
RESTFul Api 3장 HTTP를 이용한 인터랙션 설계 HTTP / 1.1REST API 는 요청 메서드, 응답코드, 메시지 헤더 등 HTTP 버전 1.1 의 모든 측면을 수용한다. 요청 메소드클라이언트는 상호작용하려는 메서드를 HTTP 요청 메시지의 Request-Line 부분에 명시한다.REST API 리소스 모델에서 각 HTTP 메서드는 잘 정의된 고유한 의미가 있다. GETGET 메서드는 리소스 상태의 표현 ( 리소스의 상태가 어떤지를 나타내는 값 ) 을 얻을 때 사용하며, HRAD 메서드는 리소스 상태에 대한 메타데이터를 얻을 때 사용한다. PUTPUT 메서드는 새로운 리소스를 스토어에 추가하거나 기존 리소스를 갱신 할 때 사용한다. DELETEDELETE 메서드는 부모에서 리소스를 제거한다. POSTPOST 메서드는 컬렉션에 새로운 리소스를 만들거.. 2019. 3. 5.
RESTFul Api 2장 URI 식별자 설계 RESTFul Api 2장 URI 식별자 설계URIREST API는 리소스를 나타낼 때 URI를 사용한다.팀 버너스리는 그가 정의한 웹 구조의 원칙에서 URI의 불투명성에 대해 다음과 같이 설명하였다. 식별자로 할 수 있는 유일한 일은 대상을 나타내는 것이다. 역참조를 할 때가 아니라면 다른 정보를 얻기 위해서 URI의 내용을 들여다보지 말아야 한다. 클라이언트는 웹 연결 방식을 따라야 하고 URI를 불투명한 식별자로 취급해야 한다. ?즉 REST API 설계자는 URI를 만들 때부터 REST API 리소스 모델을 클라이언트에 전달할 수 있어야 한다. 이 장에서는 REST API URI 의 디자인 규칙들을 소개한다.이 부분에서 언급하는 규칙들은 URI 형식에 적용되는 것들이다. RFC3986 에서는 일반.. 2019. 3. 3.