이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 0. 서론 [ 도입 ] SOLID는 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 클래스들을 서로 결합하는 방법을 설명해줌 SOLID는 객체 지향 소프트웨어에만 적용되지는 않음, 클래스는 단순히 함수 + 데이터의 집합을 의미함 SOLID의 목적은 중간 수준(코드보다 상위 수준인 모듈과 컴포넌트 내부)의 소프트웨어 구조가 다음과 같도록 만드는데 있음 변경에 유연함 이해하기 쉬움 많은 소프트웨어 시스템에서 사용되는 컴포넌트의 기반이 됨 참고로 도입 부분에 중요한 부분이 있는데, "좋은 소프트웨어 시스템은 깔끔한 코드로부터 시작한다. 좋은 벽돌..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 3장. 패러다임 개요 [ 구조적 프로그래밍 ] 최초로 만들어진 패러다임은 아니지만 최초로 적용된 패러다임(1968년 다익스트라) 다익스트라는 무분별한 점프(goto 문법)는 프로그램 구조에 해롭다는 사실을 제시함 대신 if/then/else와 do/while/until과 같은 더 익숙한 구조로 대체함 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과하는 패러다임 "직접적인 전환에 대한 규칙을 부과한다"는 의미는 goto 문으로 코드를 직접 넘나드는 것을 막는다는 뜻이다. 이는 언어 차원에서 goto 문법을 지원하지 않음으로써 자연스..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 1장. 설계와 아키텍처란? [ 도입 ] 설계와 아키텍처의 정의 아키텍처: 저수준의 세부사항과는 분리된 고수준의 무언가 설계: 저수준의 구조 또는 결정사항 설계와 아키텍처의 관계 설계와 아키텍처는 모두 소프트웨어 전체 설계의 구성요소임 이 둘은 단절없이 이어지며, 이를 통해 대상 시스템의 구조를 정의함 개별로 존재할 수 없으며 고수준에서 저수준으로 향하는 의사결정의 연속성만이 있음 이 부분에서 핵심은 "고수준에서 저수준으로 향하는 의사결정의 연속성만이 있음"이라는 부분이다. 저자가 다소 불친절하지만 엄청나게 많은 의미를 내포하고 있다. 이 문장이 ..
이번에는 인텔리제이를 사용할 때 유용한 설정 및 플러그인 등을 정리하였습니다. 1. 인텔리제이 설정 [ Author와 Usages 설정 ] 개발을 하다 보면 어떤 코드를 누가 작성했는지, 얼마나 사용되고 있는지 파악하고 싶을 때가 있다. IntelliJ에서 제공하는 기능을 사용하면 코드 위에 이를 표시해준다. Preferences > Editor > Inlay Hints > Code vision > Usages Preferences > Editor > Inlay Hints > Code vision > Code author [ Annotate with blame 설정 ] 개발을 하면서 어느 코드를 누가 언제 작성했는지 확인해야 할 때가 있다. Annotate with Blame을 설정하면 이를 손쉽게 파악..