본문 바로가기

Spring34

스프링 부트 - 핵심 원리와 활용 - 외부설정과 프로필1 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. Command Line Arguments vs Command Line Option Arguments Environment & PropertySource SystemEnvironmentPropertySource.c.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 자동 구성(Auto Configuration) 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. libs? lib는 안되나? implementation files @EnableAutoConfiguration & AutoConfigurationImportSelector libs? lib는 안되나? 우리가 직접.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 스프링 부트 스타터와 라이브러리 관리 💡이 포스팅은 김영한님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. 의존성 버전 직접 관리 시 어려움 & 단점 Spring Dependency Management & Version Info BOM Spring Boot Starter Dependency 의존성 버전 직접 관리 시 어려.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 스프링 부트와 내장 톰캣 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에서 정리할 내용은 다음과 같습니다. window Tomcat 실행 이슈 jar vs fat-jar vs executable jar(실행가능한 jar) META-INF, BOOT-INF, JarLauncher ServletWebServerApplicat.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 웹 서버와 서블릿 컨테이너 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에서 정리할 내용은 다음과 같습니다. .DS_Store 배포 방식의 차이 war vs jar Tomcat 10.x Issue war build ServletContainerInitializer, META-INF/services WebApplication.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 시작하기 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 김영한 님의 스프링 로드맵 마지막 강의인 스프링 부트 강의가 출시되었습니다. 이미 기대가 많이 되는 상태인데 토비 님의 스프링 부트 강의를 듣고 난 후라 영한님은 또 어떤 이야기를 해주실지 더 기대가 됩니다. 지난번 토비님 강의 포스팅 때와 마찬가지로 이번 포스.. 2023. 3. 11.
@Controller에서도 ResponseEntity를 사용하면 Rest가 된다?? 💡이번 포스팅은 스프링 커뮤니티에서 한 개발자분이 공유해 주신 내용을 토대로 학습하여 정리한 포스팅입니다. 학습한 내용을 정리한 GitHub Repository입니다. GitHub - kiekk/spring-response-entity-test Contribute to kiekk/spring-response-entity-test development by creating an account on GitHub. github.com 먼저 공유해주신 내용은 다음과 같습니다. 저는 이 내용을 보자마자 흠칫했습니다. 이때까지 무의식에 rest-api를 만들 때 @RestController를 사용하면서 동시에 ResponseEntity를 사용해 왔었기 때문입니다. 제가 ResponseEntity를 사용한 이유는 r.. 2023. 3. 11.
토비의 스프링 부트 - 스프링 부트 자세히 살펴보기 & 후기 💡이 포스팅은 토비님의 인프런 강의인 토비의 스프링 부트 - 이해와 원리를 수강하고 학습한 내용을 정리한 포스팅입니다. 토비님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-toby-spring-boot Contribute to kiekk/inflearn-toby-spring-boot development by creating an account on GitHub. github.com 이번 챕터에서는 이제껏 만들면서 학습해왔던 커스텀 자동 구성 정보를 제거하고 Spring Boot에서 제공하는 자동 구성 정보로 대체해보았는데 이 부분이 강의 중 가장 신기하고 재밌었던 부분이었습니다. 그리고 SpringBoot에서 자동 구성 정보가 어떻게 설정되.. 2023. 2. 22.
토비의 스프링 부트 - Spring JDBC 자동 구성 개발 💡이 포스팅은 토비님의 인프런 강의인 토비의 스프링 부트 - 이해와 원리를 수강하고 학습한 내용을 정리한 포스팅입니다. 토비님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-toby-spring-boot Contribute to kiekk/inflearn-toby-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. JdbcTemplate vs Connection HikariCP JdbcTemplate vs Connection Spring을 사용하기 전에는 DB에 SQL문을 실행시키기 위해서는 Connection을 직접 생성하.. 2023. 2. 22.
1-8. 스프링이란 무엇인가? 8장에서 비로소 스프링이란 무엇인가? 에 대해 설명합니다. 보통의 책들은 1장에서 바로 스프링의 개념에 대해 설명할 텐데, 오히려 토비 님은 책의 마지막에서야 비로소 스프링이 무엇인지 설명합니다. 이는 스프링이 무엇인지 말로 설명해 봤자 이해가 잘 되지 않을뿐더러, 직접 코드로 확인해 봐야 더 잘 이해가 될 것이라는 토비 님의 생각이 담겨 있었기 때문이고, 읽기 모임에서도 여러 번 언급하셨듯이 이를 통해서 토비 님은 스프링이 굉장히 특별한 기술이 아니라는 것을 말하고 싶었던 것 같습니다. 1권을 통해서 스프링 이전에 어떤 문제점들이 있었고, 스프링은 이를 어떻게 해결해 왔는가, 그리고 스프링은 앞으로 어떤 방향성을 가지고 발전해나 가는가에 대해 알 수 있어서 좋았습니다. 스프링의 특징 자바 엔터프라이즈 .. 2023. 1. 15.
1-7. 스프링 핵심 기술의 응용 현실적으로 SQL의 변경 작업은 생각보다 빈번히 일어납니다. 개발 중에는 물론이고 운영 중인 시스템의 SQL을 변경해 달라는 요청도 드물지 않습니다. 그렇다고, 그때마다 DAO 코드를 수정하고 이를 다시 컴파일해서 적용하는 건 번거로울 뿐만 아니라 위험하기도 합니다. (p.558) 이번장은 초난감 DAO에 아직 남아있는 SQL 문자열을 분리하는 과정을 통해 스프링의 여러 추상화된 기술을 설명하며 다시 한번 DI의 중요성에 대해 설명합니다. 1장부터 지금까지 계속해서 DI를 강조하는데, 실제 읽기 모임에서도 토비님은 DI가 정말 중요하다고 거듭 언급하실정도로 스프링을 학습하는 데 있어서 DI는 꼭 빠트릴 수 없는 것 같습니다. DI란 결국 미래를 프로그래밍 하는 것입니다. (p.618) 그리고 DI를 적용.. 2023. 1. 15.
1-6. AOP (2) 이전에 JDK 다이내믹 프락시를 사용해 반복되는 로직을 제거하며, 핵심 기능과 부가 기능을 분리해 보았습니다. 변하지 않는 타깃으로의 위임과 부가기능 적용 여부 판단이라는 부분은 코드 생성기법을 이용하는 다이내믹 프락시 기술에게 맡기고, 변하는 부가기능 코드는 별도로 만들어서 다이나믹 프록시 생성 팩토리에게 DI로 제공하는 방법을 사용했습니다. 그렇다면 반복적인 프락시 메서드 구현을 코드 자동생성 기법을 이용해 해결했다면 반복적인 ProxyFactoryBean 설정 문제는 설정 자동등록 기법으로 해결 할 수 업슬까? 또는 실제 빈 오브젝트가 되는 것은 ProxyFactoryBean을 통해 생성되는 프록시 그 자체이므로 프락시가 자동으로 빈으로 생성되게 할 수는 없을까? 스프링에서는 빈 후처리 기를 이용해.. 2023. 1. 10.
1-6. AOP (1) AOP는 IoC/DI, 서비스 추상화와 더불어 스프링의 3개 기반기술의 하나입니다. AOP는 스프링의 기술 중에서 가장 이해하기 힘든 난해한 용어와 개념을 가진 기술로 악명이 높습니다. ... 필연적인 등장배경과 스프링이 그것을 도입한 이유, 그 적용을 통해 얻을 수 있는 장점이 무엇인지에 대한 충분한 이해가 필요합니다. 그래야지만 AOP의 가치를 이해하고 효과적으로 사용할 방법을 찾을 수 있습니다. (p.401) 이번 6장은 분량이 많아 1, 2로 나누어 포스팅하겠습니다. 6장은 기존의 어떤 문제로 인해 AOP가 등장하게 되었는지, 어떤 방식으로 AOP가 동작하는지 그리고 AOP에 관련된 용어들에 대해 학습합니다. 읽기 모임에서 토비 님께서 직접 AOP가 가장 재미있고 중요하다고 생각한다고 말씀하셨는데.. 2023. 1. 9.
1-5장. 서비스 추상화 5장은 서비스 추상화로 기존의 초난감 DAO에서 기능을 추가하고 리팩토링 과정을 거쳐 더 나은 구조를 설계하는 과정을 소개합니다. 5장에서는 초난감 DAO에서 사용자의 레벨 관리 기능을 가지고 기능 추가 및 리팩토링 과정을 학습합니다. public class User { private String id; private String name; private String password; private static final int BASIC = 1; private static final int SILVER = 2; private static final int GOLD = 3; private int level; /* 사용자 레벨 관리 기능 추가로 level 필드를 추가했다. level 필드는 단순히 int .. 2023. 1. 8.
1-4장. 예외 자바 개발자가 가장 신경 쓰기 귀찮아하는 것 중의 하나가 바로 예외처리입니다. 정상적인 결과와 흐름을 보여주는 코드를 만들기도 버거운데 예외상황까지 처리해야 한다는 사실이 부담스러울 수도 있습니다. 그래서 예외와 관련된 코드는 자주 엉망이 되거나 무성의하게 만들어지기 쉽습니다. 때론 잘못된 예외처리 코드 때문에 찾기 힘든 버그를 낳을 수도 있고, 생각지 않았던 예외상황이 발생했을 때 상상 이상으로 난처해질 수도 있습니다. (p.279) 토비님은 코드를 확인할 때 예외 처리가 제대로 되어 있지 않으면 점수를 깎는다고 합니다. 추가로 학습 테스트나 예제를 작성하는 경우에도 예외 처리를 대충 해서는 안된다고 강조합니다. 예외 처리를 할 때 하지 말아야 할 방법으로는 크게 3가지가 있습니다. 예외를 잡고 아무것.. 2023. 1. 8.