[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 ..
[CS / Web] 웹 개발에서 쿠키, 세션 저장소 및 로컬 저장소 이해
·
Computer Science
웹 개발에는 쿠키, 세션 저장소 및 로컬 저장소와 같이 클라이언트 측에 데이터를 저장하는 다양한 방법이 있습니다. 이러한 메커니즘은 사용자 데이터를 관리하고 전반적인 브라우징 경험을 개선하는 데 중요한 역할을 합니다. 📍 쿠키 쿠키란? 사용자의 브라우저에 저장되는 작은 데이터 조각 모든 HTTP 요청과 함께 서버로 전송되어 서버가 사용자를 식별하고 인증할 수 있도록한다 만료 날짜가 있으며 지정된 기간 동안 지속되거나 브라우저 세션이 종료되면 만료되도록 설정이 가능하다 쿠키는 크기가 제한되어 있으며 일반적으로 몇 킬로바이트에서 몇 메가바이트 범위 클라이언트 측과 서버 측 모두에서 액세스하고 수정할 수 있다 쿠키의 동작 방식 클라이언트가 페이지를 요청 서버에서 세션 ID 등을 포함한 쿠키 생성 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) - 토큰에서 사용할 정보의 조..
[CS / Web] RESTful API 설계
·
Computer Science
간단한 토이 프로젝트 준비 중 RESTful API에 대해 알게 되어 정리해보았다. 📍 API 란? API란 Application Programming Interface의 약자로 프로그램을 실행하는 인터페이스이다. API는 서버와 데이터베이스에 대한 출입구 역할을 한다 📍 REST API 란? Representational State Transfer REST API란 REST Architecture의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻한다. 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 것을 의미한다. = 자원(Resource)의 표현(Representation)에 의한 상태 전달 📍 RESTful API에서 HTTP Method GET : 조회 (받..
[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(); ..