[Java / Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 4. MVC 프레임워크 만들기
·
책&강의 정리
본 내용은 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 📕 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 => 공통 로직이 각각의 컨트롤러에 중복되어 존재 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 => 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있음 📕 프론트 컨트롤러 도입 - V1 📗 V1 구조 📗 ControllerV1 package hello.servlet.we..
[Java / Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 3. 서블릿, JSP, MVC
·
책&강의 정리
본 내용은 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 📕 회원 관리 웹 애플리케이션 요구사항 📗 회원 정보 이름 : username 나이 : age 📗 기능 요구사항 회원 저장 회원 목록 조회 [Member] - 회원 도메인 모델 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age..
[Java / Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 2. 서블릿
·
책&강의 정리
본 내용은 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 📕 프로젝트 생성 📗 프로젝트 환경 Project : Gradle Language : Java Spring Boot : 2.7.12 Packaging : War Java : 11 Dependencies : Spring Web, Lombok Spring Web Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container. -> 톰캣 서버를 내장하여 별도의 서버 없이 웹 어플리케이션 실행 가능 Lombok Java annotation library whic..
[Java / Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 1. 웹 애플리케이션 이해
·
책&강의 정리
본 내용은 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 📕 웹 서버, 웹 애플리케이션 서버 📗 웹 - HTTP 기반 HTTP 메시지로 HTML, TEXT, 이미지, 음성, 영상, JSON, XML 등등 모든 형태의 데이터를 전송할 수 있다. 📗 웹 서버(Web Server) HTTP 기반으로 동작하고 정적 리소스를 제공하며 기타 부가 기능을 가진다. 정적 리소스: HTML, CSS, JS, 이미지, 영상 ex. Nginx, Apache 📗 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작하고 웹 서버의 기능을 포함한다. 프로그램 코드를 실행하여 애플리케이션 로직을 수행한다. 동적 HTML, HTTP ..
[Java / Spring] JWT와 Spring Security (작성중)
·
Framework & Library/Spring
📍 JWT란 무엇인가? JWT(Json Web Token)은 일반적으로 클라이언트와 서버 통신 시 권한 인가(Authorization)을 위해 사용하는 토큰이다. 📍 JWT의 구조 Header, Payload, Signature의 3 부분으로 이루어지며, Json 형태인 각 부분은 Base64Url로 인코딩 되어 표현된다. 또한 각각의 부분을 이어 주기 위해 . 구분자를 사용하여 구분한다. 헤더(Header) - 토큰 서명에 사용되는 알고리즘과 같은 토큰에 대한 메타데이터가 포함 typ : 토큰의 타입을 지정 ex) JWT alg : 알고리즘 방식을 지정하며, 서명(Signature) 및 토큰 검증에 사용 ex) HS256(SHA256) 또는 RSA 페이로드(Payload) - 토큰에서 사용할 정보의 조..
[Java / Spring] 토비의 스프링 - 1. 오브젝트와 의존관계 - DAO 분리
·
책&강의 정리
토비의 스프링 공부 후 정리한 글입니다. 1.2 DAO 분리 개발자가 객체를 설계할 때 가장 염두에 둬야 할 사항은 미래의 변화를 어떻게 대비할 것인가이다 여기서 변경 혹은 발전은 한 번에 한 가지 관심사항에 집중해서 일어난다 즉, 관심이 같은 것끼리는 모으고, 관심이 다른 것은 따로 떨어져 있게하는 관심사의 분리가 중요하다 📍 커넥션 만들기의 추출 UserDao - add() 메소드 관심사항 DB와 연결을 위한 커넥션을 어떻게 가져올까 사용자 등록을 위해 DB에 보낼 SQL 문장을 담을 Statement를 어떻게 만들고 실행할까 작업이 끝나면 사용한 리소스인 Statement와 Connection 오브젝트 닫아주기 첫번째 "DB와 연결을 위한 커넥션을 어떻게 가져올까" => 커넥션을 가져오는 중복된 코..
[Java / Spring] 토비의 스프링 - 1. 오브젝트와 의존관계 - 초난감 DAO
·
책&강의 정리
토비의 스프링 공부 후 정리한 글입니다. 1.1 초난감 DAO 스프링이 가장 관심을 많이 두는 대상은 오브젝트다. 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용 방법을 넘어서 오브젝트 설계로 발전하게 된다. 📍 User DAO DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 📍 User 오브젝트 - 자바빈 아래의 User 클래스는 자바빈 규약을 따르는 오브젝트이다. 자바빈(JavaBean)이란 디폴트 생성자를 갖추고, 프로퍼티를 가진 오브젝트를 말한다. package chapter1; public class User { String id; String name; String password; public Strin..
[LOATODO] 로스트아크 오픈 API - 내 캐릭터 정보 불러오기
·
Project/LOATODO
1. 서론본격적인 로아 숙제 관리 사이트 개발전 연습2. 개발2 - 1. 대표 캐릭터 이름을 입력하여 관련된 전체 캐릭터 불러오기public JSONArray Characters(String characterName) { try { characterName = URLEncoder.encode(characterName, "UTF-8"); URL url = new URL("https://developer-lostark.game.onstove.com/characters/"+characterName+"/siblings"); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); ..
[Java / Spring] JSP -> Thymeleaf(타임리프) 변경
·
Framework & Library/Spring
📍 서론 JSP는 예전 키보드 쇼핑몰 프로젝트에서 썻던 템플릿 엔진이고, mustache는 null값 처리와 프론트 단에서 불편한 점이 조금 있어서, 타임리프를 사용해보았다. 📍 Thymeleaf (타임리프) 사용하기 Gradle - build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' Maven - pom.xml org.springframework.boot spring-boot-starter-thymeleaf 위 설정을 추가 후 빌드하면 application.properties에 아래 코드가 자동으로 추가된다. spring.thymeleaf.prefix=classpath:/templates/ spring...