본문 바로가기

전체글148

[Spring 공식문서] Spring Boot. Web 이번 파트는 Web이다. 스프링 부트를 사용하여 웹을 개발하게 되면 거의 Spring MVC를 사용하게 된다. 역시 전체를 정리하진 못했고, 부분부분 정리했다.정리하면서 느끼는거지만 스프링 공식문서에 있는 내용들을 외우려고 보는 것은 아니다. 그냥.. 한번 정도는 볼 필요가 있고, 이제는 공식문서를 두려워하지 않는다는 생각이 들어서이다. (억지로 하려고 하면 너무 힘이들기 떄문에 가볍게 보는 마음으로 정리하고 있다.)Web레거시 스프링은 어려웠지만, 스프링 부트는 웹 애플리케이션 개발에 매우 적합하다. 그 이유는 내장된 Tomcat, Jetty, Undertow, Netty 서버를 사용함으로써 독립형 HTTP 서버를 만들 수 있다. 웹 애플리케이션 개발을 하기 위해서 spring-boot-starter.. 2024. 5. 16.
[Spring 공식문서] Spring Boot. Core Features 스프링 공식문서 정리할 두 번째 내용은 Spring Boot 프로젝트의 Core Features 파트이다. 스프링 부트의 코어 기능인데, 모두 정리하기는 힘들어서 중요하다고 생각되는 몇가지만 정리해보았다. (근데 이것도 주관적이라.. 흠..)Core FeaturesSpringApplicationSpringApplication 클래스는 main() 메서드에서 시작되는 Spring 애플리케이션을 부트스트랩하는 편리한 방법을 제공한다.부트스트랩(Bootstrap): 클래스 로더의 로딩 과정에서 JVM을 실행할 때 생성되며, Object 클래스들을 비롯한 자바 API들을 로드한다.Startup Failure애플리케이션 실행시 실패하면 FailureAnalyzers 클래스가 에러 메시지와 어떻게 하면 해결할 수.. 2024. 5. 16.
[Spring 공식문서] Spring Boot. Using Spring Boot 공식문서 사이트: https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using이미 스프링과 스프링 부트의 개념은 강의를 통해 학습한 상태이다. 그런데도 공식문서를 훓어보는 이유는 그래도 내가 해당 기술을 사용하고 있다면 공식문서 정도는 볼 줄 알아야 하지 않을까 하는 마음에 보기 시작한다.하지만 내용이 진짜 너무나도 많기 때문에 다 볼 순 없을 것 같고.. 필요한 부분만 정리해서 블로그에 포스팅하려고 한다.Using Spring BootBuild Systems빌드 시스템은 의존성 관리(Dependency Management)를 지원하고 Maven Central 저장소에 있는 라이브러리를 사용할 수 있는 것이 가장 좋다. 대.. 2024. 5. 14.
[클린코드] 12장. 창발성 12장. 창발성창발적 설계로 깔끔한 코드를 구현하자단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 믿는다.모든 테스트를 실행한다.중복을 없앤다.프로그래머 의도를 표현한다.클래스와 메서드 수를 최소로 줄인다.단순한 설계 규칙 1: 모든 테스트를 실행하라무엇보다 먼저, 설계는 의도한대로 돌아가는 시스템을 내놓아야 한다. 즉, 문서를 완벽하게 설계해도 실제 시스템이 설계한대로 돌아가질 않는다면 그 가치는 인정받기 어렵다.따라서 테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템이 되어야 한다. (테스트가 가능한 시스템)테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 더불어 높아진다.결합도가 높으면 테스트 작성이 어려워지는데, 테스트 케이스를 가능한 많이 작성하면 작성할수록.. 2024. 5. 2.
[클린코드] 11장. 시스템 11장. 시스템복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다.- 레이 오지, 마이크로소프트 CTO도시를 세운다면?혼자서 도시를 세울 수 있을까? 불가능하다.혼자서 도시를 관리할 수 있을까? 불가능하다.도시를 잘 관리할 수 있는 이유는 수도 관리팀, 전력 관리팀, 건축물 관리팀 등 각 분야를 관리하는 팀이 있기 때문이다. 도시가 잘 돌아가는 또 다른 이유는 적절한 추상화와 모듈화이다. 따라서 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 '구성요소'는 효율적으로 돌아간다.소프트웨어 팀도 도시처럼 구성한다. 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다.시스템 제작과 시스템 사용을 분리하라소프트웨어 시스템은 (애플리케이션 .. 2024. 5. 1.
[클리코드] 10장. 클래스 10장. 클래스이 장에서는 깨끗한 클래스를 다룬다.클래스 체계캡슐화: 리팩토링에서도 다루었지만 클래스의 멤버변수는 private으로 은폐시켜야 한다.클래스는 작아야 한다.클래스를 만들 때 중요한 세 가지가 있다.클래스 크기가 작아야 한다.클래스 크기가 작아야 한다.클래스 크기가 작아야 한다.SOLID 원칙에서도 SRP 즉, 하나의 클래스는 하나의 책임을 갖는 단일 책임 원칙이 있다. 이는 스프링을 배웠다면 당연하게 여길 것이다. 실제 하나의 클래스에 많은 책임이 있다면 유지보수하기가 굉장히 어려워진다. (그래서 Layer를 분리한 것도 있다.)서랍으로 비유하면 아래 선택지에서 어떤 것을 선호하는가?많은 서랍이 있고, 각 서랍별로 물건들을 분류해놓은 상태하나의 서랍이 있고, 하나의 서랍안에 모든 물건들을 .. 2024. 4. 26.