스프링 6

스프링 HTTP 헤더와 요청 파라미터 조회하는 방법

1. @Controller에서 헤더 정보 가져오기 헤더 정보가 필요한 경우가 많은데 스프링 @Controller에는 파라미터를 통해 헤더뿐만 아니라 많은 정보를 가져올 수 있다. 사실 자주 사용하는 것만 기억나고 가끔 쓰게 되는 건 찾아보게 된다. 아래 공식 매뉴얼 참고. @RequestMapping("/headers") public String headers( HttpServletRequest reqeust, HttpServletResponse response, HttpMethod httpMethod, // method 정보 Locale locale, // 위치 정보 @RequestHeader MultiValueMap headerMap, // 모든 헤더 정보 @RequestHeader("host") S..

개발/Java|Spring 2023.04.10

스프링 핵심원리 기본 - IoC, DI, ApplicationContext, 의존관계 주입 등

아주 오랜만에 김영한님 강의를 핵심원리부터 다시 보기 시작했다. 기본적인 내용이지만 다시 들어보니 머릿속이 좀 정리가 되는 기분이다. 그 땐 몰랐는데 다시 보니 팍팍 꽂히는 내용도 수두룩하다. 도대체 처음 듣던 당시엔 뭘 이해했던 건가 싶어 자괴감이 들기도... 그래도 그간 줏어듣고 코드 쫌 깨작거렸다고 이해도가 약간은 올라갔나보다. 또 돌아서면 까먹을 게 뻔하니 조금이라도 기록하고 남겨보자. 내용이 방대해서 부분적으로 발췌하고 요약했다. 1. 제어의 역전(IoC) 스프링은 좋은 객체 지향 설계를 위해 역할과 구현을 분리시킬 수 있는 많은 방법을 제공하는데, 그 중 가장 기본적이고 좋은 도구가 바로 DI 컨테이너이다. 구현 객체는 자신의 로직을 실행하는 역할만 담당하고 프로그램의 제어 흐름은 스프링이 맡..

개발/Java|Spring 2023.04.06

좋은 객체 지향 설계의 5가지 원칙 SOLID

SOLID 원칙 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP(Single Responsibility Principle) 단일 책임 원칙 OCP(Open/Closed Principle) 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) 리스코프 치환 원칙 ISP(Interface Segregation Principle) 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) 의존관계 역전 원칙 SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단..

개발/Java|Spring 2023.03.29

스프링 의존성주입 생성자주입(@RequiredArgsconstructor 쓰는 이유)

1. @Autowired는 변경이 어렵다 @Service @Transactional(readOnly = true) public class MemberService { @Autowired private MemberRepository memberRepository; } 2. 그래서 변경을 위해 Setter Injection 사용 하지만 조립한 이후에 바꿀 이유가 없음. @Service @Transactional(readOnly = true) public class MemberService { private MemberRepository memberRepository; @Autowired public void setMemberRepository(MemberRepository memberRepository) {..

개발/Java|Spring 2023.01.18

Spring Security 개념, 아키텍처, 필터 순서, 예제

[목차] 1. Spring Security 개념 2. 아키텍처 3. 필터 순서 4. 샘플예제 스프링 시큐리티는 한 번에 이해가 쉽지 않다. 지금도 마찬가지지만, 공부하는 마음으로 조금씩 정리해 본다. 참고로 문서는 Spring Security 5.7.6 버전 기준이며, Java 8 이상의 런타임 환경이 필요하다. Spring Boot with Gradle 환경이다. 스프링 부트는 스프링 시큐리티 관련 의존성을 모두 묶어 'spring-boot-starter-security' 라는 스타터를 제공한다. 스타터는 스프링 이니셜라이저를 사용하면 쉽고 간단히 만들 수 있고, 아래처럼 수동으로 gradle 설정을 추가할 수도 있다. dependencies { compile "org.springframework.bo..

개발/Java|Spring 2023.01.17

젠킨스(jenkins) 빌드 후 스프링(spring) 프로젝트 실행하기

[목차] 1. 빌드 완료된 jar 파일 확인 2. jar 파일 실행 3. 젠킨스(jenkins) 설정 추가 앞서 ngrok을 이용하여 깃헙과 젠킨스를 연동해 빌드 해 봤다. https://dalichoi.tistory.com/13 젠킨스(jenkins)와 깃헙(github) 연동하기 목차 0. 사전준비 1. 젠킨스 관리 설정 2. 젠킨스 새로운 아이템 생성 및 설정 3. github webhooks 설정 깃헙(github)에 코드를 push하면 젠킨스(jenkins) 서버를 통해 자동 빌드하는 걸 해보자. 배포는 너무 dalichoi.tistory.com 이번엔 빌드된 jar파일을 실행까지 하여 외부에서 접속 가능하게 만들어 보자. 1. 빌드 완료된 jar 파일 확인 - 젠킨스에서 빌드된 jar 파일은 ..

개발/DevOps 2022.12.23
728x90
반응형