백엔드

1. HTTP 요청기본, 헤더 조회RequestMappingRequestHandler가 동작하는 애노테이션 기반의 스프링 Controller는 다양한 파라미터를 지원한다. 기본값과 헤더값을 꺼내는 방법을 알아보자.Locale우선순위가 가장 높은 Locale 정보(현재 시스템에 설정된 국가 및 언어 설정)를 조회한다.우선순위나 처리 방법은 LocaleResolver 참고@RequestHeader MultiValueMap headerMap모든 HTTP header를 MultiValueMap 형식으로 조회한다.@RequestHeader("host") String host특정 HTTP 헤더를 조회한다.속성필수 값 여부: required / 기본 값 속성: defaultValue@CookieValue(value ..
저번 섹션까지 서블릿과 관련한 프로젝트는 마무리됐다. 이후 스프링 MVC를 집중적으로 학습하기 위해 새로운 스프링 프로젝트를 생성한다.  1. 프로젝트 생성 및 기초 작업이때 뷰 템플릿 엔진으로 JSP 대신 Thymeleaf를 사용하기 때문에 Packaging을 War 대신 Jar로 선택해야 한다.Jar를 사용하면 항상 내장 서버(톰캣 등)를 사용하고, webapp 경로도 사용하지 않는다. 내장 서버 사용에 최적화돼 있는 기능이라, 최근에는 스프링 부트 사용 시 주로 이 방식을 사용한다.War는 WAS를 별도로 설치하고, 그곳에 빌드된 파일을 넣을 때 사용한다. 물론 내장 서버도 사용 가능하지만, 주로 외부 서버에 배포하는 목적으로 사용한다. Welcome 페이지 만들기스프링 부트에 Jar를 사용하면 스..
1. 스프링 MVC 전체 구조저번 섹션에서 직접 만든 MVC 프레임워크와 스프링 MVC 구조를 비교해보자.전체적으로 보면 구조가 매우 비슷하다. 객체들 이름만 바꾸고, 기능을 확장하면 거의 똑같이 볼 수 있다.FrontController → DispatcherServlethandlerMappingMap → HandlerMappingMyHandlerAdapter → HandlerAdapterModelView → ModelAndViewviewResolver 메서드 → ViewResolver InterfaceMyView class→ View Interface DispatcherServlet 구조 살펴보기스프링 MVC도 프론트 컨트롤러 패턴으로 구현돼 있다. 그 프론트 컨트롤러가 바로 DispatcherServ..
이전엔 단순하고 실용적인 MVC 프레임워크를 만들었다. [스프링 MVC 1편] (4) MVC 프레임워크 만들기 - 1이전에 서블릿을 Controller로, JSP를 View 화면 렌더링용으로 사용하는 MVC 패턴을 도입했었다. [스프링 MVC 1편] (3) 서블릿, JSP, MVC 패턴1. 서블릿으로 회원 관리 웹 애플리케이션 만들기회원 관리 웹dev-meung.tistory.com 이번 섹션에선 어댑터라는 개념을 추가해 스프링 MVC를 더 자세하게 이해해 본다. 1. 유연한 컨트롤러 (v5) - 1어댑터 패턴만약 어떤 개발자는 ControllerV3 방식으로 개발하고 싶고, 어떤 개발자는 ControllerV4 방식으로 개발하고 싶다면 어떻게 해야 할까?public interface Controller..
이전에 서블릿을 Controller로, JSP를 View 화면 렌더링용으로 사용하는 MVC 패턴을 도입했었다. [스프링 MVC 1편] (3) 서블릿, JSP, MVC 패턴1. 서블릿으로 회원 관리 웹 애플리케이션 만들기회원 관리 웹 애플리케이션 요구사항이번 섹션에선 회원 정보(이름, 나이)를 저장하고 조회하는 비즈니스 로직을 가진 웹 애플리케이션을 간단dev-meung.tistory.com 이번 섹션에선 MVC 패턴을 사용하면서 발생하는 문제점을 개선한 MVC 프레임워크를 서블릿을 통해 차근차근 만들어 볼 예정이다. 단계별로 프레임워크를 만들고 나면 나중에 스프링 MVC의 구조를 이해하는 데 훨씬 도움이 된다. 1. 프론트 컨트롤러 패턴 소개프론트 컨트롤러를 도입하기 전엔 요청이 올 때마다 각각 공통 로..
[팀 프로젝트] 하루치(HARUCHI) - 이메일 인증 기반 회원가입 API 구현 (1)7.18(목) 백엔드 회의에서 API 명세서를 바탕으로 역할 분배를 했다. 어떻게 나눌까 하다가 최대한 동시에 작업할 수 있도록 도메인 별로 5~7개 정도씩 나눴고, 나는 그중에서 회원 도메인을 담당하dev-meung.tistory.com위의 링크에서 비밀번호를 암호화해서 저장하는 BCryptPasswordEncoder를 사용해 회원가입 API를 구현해 봤다. 정확하게 이해하고 구현한 건 아니라서 아래의 공식 문서를 읽어보면서 관련된 내용을 정리해보려고 한다. Password Storage :: Spring SecurityThroughout the years, the standard mechanism for stori..
1. 서블릿으로 회원 관리 웹 애플리케이션 만들기회원 관리 웹 애플리케이션 요구사항이번 섹션에선 회원 정보(이름, 나이)를 저장하고 조회하는 비즈니스 로직을 가진 웹 애플리케이션을 간단하게 만들어 본다. 최대한 스프링 없이 순수 서블릿만으로 구현하는 것이 목적이다.스프링은 톰캣을 띄울 때만 사용한다. Member Entity와 Repository를 생성한  save(), findById(), findAll(), storeClear() 등의 메서드와 필드(username, age)를 구현하고 간단하게 Test까지 진행한다.MemberRepository에서 JPA를 사용하지 않는다면 HashMap으로 id와 Member를 저장하는 방식을 사용할 수 있다. 이때 HashMap을 사용하면 동시성 문제가 발생할 ..
1. Hello 서블릿프로젝트 환경Java: 21Spring Boot: 3.x.xDependencies: Spring Web, LombokPackaging: War → 주의: JSP를 실행하기 위해서 Jar 대신 War로 설정해야 한다.프로젝트를 생성한 뒤 [File - Setting]에서 [Annotation Processors]를 검색하고, Enable annotation processing 체크 (재시작)임의의 테스트 class를 만들고 @Getter 확인아래 사이트에서 OS에 맞는 Postman 다운로드 받고 설치하기 Download Postman | Get Started for FreeTry Postman for free! Join 30 million developers who rely on P..
1. 웹 서버(Web Server), 웹 애플리케이션 서버(WAS - Web Application Server)브라우저에서 URL을 치면 인터넷을 통해 서버에 접근하고, 서버에서는 HTML을 만들어 클라이언트에 보낸다. 클라이언트와 서버가 요청과 응답을 할 때 모두 HTTP라는 프로토콜을 기반으로 동작한다. 모든 것을 HTTP 메시지에 담아 전송한다는 것이다. 웹 서버(Web Server)웹 서버(Web Server)는 HTTP를 기반으로 동작하는 서버로, 정적 리소스를 제공하고 기타 부가 기능을 갖고 있다. 정적 리소스란 정적(파일) HTML, CSS, JS, 이미지, 영상 등이 포함되며, 특정 사용자마다 다르게 보여줄 수가 없고 말 그대로 정적인 파일이라고 볼 수 있다. 대표적으로 Nginx와 Apa..
1. 현업에서 EC2에 Redis를 설치해서 쓰지 않고 ElastiCache를 쓰는 이유예시EC2에 MySQL을 직접 설치해서 DB 서버처럼 써도 괜찮지만, 직접 MySQL을 깔고 이것저것 설정하는 것보단 AWS RDS 서버(AWS에서 세팅해 놓은 DB 서버)를 사용하는 게 여러 가지 부가 기능도 사용할 수 있고 안정성도 높다. 현업에서 EC2에 Redis를 설치해서 쓰지 않고 ElastiCache를 쓰는 이유도 비슷하다. 현업에서 EC2에 Redis를 직접 설치하는 경우는 드물다. 일일이 Redis를 설치하고 세팅하고 관리하면서 확장까지 하려면 신경 쓸 게 생각보다 많다. 그러나 ElastiCache를 사용하면 세팅이나 확장을 쉽게 할 수 있고, 기본적인 모니터링 기능도 제공해 주며 장애가 날 가능성도..
dev-meung
'백엔드' 카테고리의 글 목록 (4 Page)