방법론

· 방법론
도입8월 13일 당근마켓의 박용권님의 세미나를 참여했다.세미나의 제목은 ‘모놀리스 시스템 분할과 정복’이었고 복잡하고 거대한 시스템을 MSA가 아닌 modular monolith 아키텍처로 푸는 일련의 과정을 들을 수 있었다. modular monolith에 대해서는 이번 포스팅의 핵심 내용은 아니다. 관련해서는 용권님의 또 다른 발표 영상이 많이 있으니 보면 이해가 잘될 것이다.https://www.youtube.com/watch?v=SrQeIz3gXZghttps://youtu.be/uTSuVFyv81w?si=nFItCijVrAL4mvW0 한 문장으로 설명한다면 모듈형 모놀리스 아키텍처란 전통적인 모놀리스 아키텍처의 단순성과 모듈화의 이점을 결합한 아키텍처 스타일이다modular monolith 세미나..
· 방법론
뇌피셜 주의!! 공부하는 단계에서 도메인과 엔티티에 대해 찾아보며 제 생각을 정리해 본 글입니다. 도메인이란? 위키백과에는 다음과 같이 나와있다. 도메인은 일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기 위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역이다. 도메인 엔지니어링 이라고도 알려져 있다. 쉽게 말하자면 소프트웨어에서 도메인이란 소프트웨어를 통해 해결하고자 하는 관심사의 영역이라고 할 수 있다. 그리고 도메인 지식이란 해당 도메인 영역을 해결하기 위해 필요한 배경 지식이다. 예를 들어 ‘지하철 역과 노선을 관리하는 애플리케이션’을 만든다고 가정해 보자. 애플리케이션을 개발하기 위해선 ‘지하철 역’과 ‘지하철 노선’이라는 도메인이 필요하고..
· 방법론
OCP 개방-폐쇄 원칙 (Open/closed principle) • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 • 이런 거짓말 같은 말이? 확장을 하려면, 당연히 기존 코드를 변경? • 다형성을 활용해보자 • 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 • 역할과 구현의 분리 우테코 1주 차 미션인 자동차 경주 미션을 생각해보자. public class Car { private int position; public void move(int movingValue) { if (movingValue >= STANDARD_OF_MOVING) { position++; } } 자동차가 움직이기 매개변수로 받은 정수가 기준 이상이어야 한다. 현재 이 movingVal..
· 방법론
MVC는 사용자 인터페이스와 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소와 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 스타일의 아키텍처다. 이렇게 하면 사용자 인터페이스를 담당하는 계층의 응집력을 높일 수 있고 여러 개의 다른 UI를 만들어 그 사이에 결합을 낮출 수 있다. 모델-뷰-컨트롤러의 관계 컨트롤러 - 모델에 명령을 보내 모델의 상태를 변경할 수 있다. 뷰와 모델 사이에서 애플리케이션 흐름을 통제 모델 - 데이터의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이를 통해 뷰는 최신 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 내릴 수 있다.. 뷰 - 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다. 장점 느슨한 결합, 확장성..
· 방법론
우테코 1주차 금요일, 문자열 덧셈 계산기 미션에 대한 피드백을 받으며 TDD에 대해 강의를 들을 수 있었다. TDD란 테스트 주도 개발의 약자로 이름에서도 알 수 있듯이 테스트를 중심으로 개발하는 방법이다. 기본적인 흐름으로는 위 그림처럼 실패하는 테스트를 먼저 짠 뒤에 구현을 해서 테스트를 통과시킨 다음 리펙토링을 한다. 이번 포스팅의 내용은 강의를 바탕으로 Junit, java를 사용하여 TDD를 하는 방법에 대해 정리한 것이다. 테스트 코드부터 짠다. 구현을 위한 프로덕션 코드를 구현하기 전에 실패하는 테스트 코드부터 작성한다. 아직 만들어지지 않은 클래스나 함수가 있어 컴파일 에러가 날 것이다. 테스트 코드 하나 만들고 프로덕션 코드를 작성하러 간다 여러 테스트 코드를 한 번에 만들고 프로덕션 ..
더즈
'방법론' 카테고리의 글 목록