728x90

JAVA/SpringBoot 20

HTTP 심화

Prorocol? 서로 주고 받을 데이터에 대한 형식을 정의한 것, 서로 간의 통신을 위한 약속 규칙. URL? - Uniform resource identifier, 웹상 존재하는 HTML, 문서, 멀티미디어 파일 등의 위치를 지정할 때 사용하는 표현 방식 - 인터넷 상의 리소스 위치를 나타낸다. HTTP? - 웹을 구성하는 세가지 요소 중 하나 - Hyper Text Transfer Protocal, 텍스트 기반의 프로토콜이다. - 웹에서 사용되는 HTML 문서, 멀티미디어, 파일 등의 데이터를 전송할 때 사용되는 통신 프로토콜 - stateless 상태를 유지하지 않는다. 서버가 클라이언트의 정보를 저장하지 않는다. 같은 클라이언트가 요청을 해도 구별할 수 없다. 그래서 쿠키 ( 서버측 기술, 클라..

JAVA/SpringBoot 2024.04.15

REST API - POST , Json

POST: Create, 리소스 추가. 클라이언트가 서버에 데이터를 전송 시 사 요청 할 때마다 데이터가 생성되므로 역등하지 않고, 데이터를 변화시키기 때문에 안정성도 없다. QueryParameter 는 특정 데이터를 필터링 할 때 사용하기 때문에 적정하지 않다. Data body를 통해 데이터를 전달하는 것이 POST 방식이다. DataBody? http 통신에는 header, body가 존재한다. 클라이언트 서버에 데이터를 전달하는 방식으론 1. 주소에 pass value로 들어가는 방식 2. Query parameter로 필터링을 걸면서 데이터를 전달하는 방식이 있다. 이 방식들은 주소가 외부에 노출, 서버로 가기 위해 중간에 거치는 (라우터 같은) 여러 장비들의 로그에 어떤 데이터들이 전달 됐는..

JAVA/SpringBoot 2024.04.10

REST API , URI 설계

REST API : Representational State Transfer 자원의 상태 전달. 네트워크 아키텍쳐 원리 REST 의 기준 1. 클라이언트 서버가 서로 독립적으로 분리되어 있어야한다. 한 곳에서 주고 받는 것이 아니라, 클라이언트와 서버가 떨어져 있는 상태에서 서로의 자원을 주고 받는 것 2. stateless. 요청에 대해서 클라이언트의 상태가 서버에 저장을 하지 않는다. 3. 캐시. 클라이언는 서버의 응답을 캐시 할 수 있어야 한다. 클라이언트가 캐시를 통해 응답을 재사용 할 수 있어야 함. 4. 인터페이스 일관성. 아키텍쳐 단순화. 다계층 구성, 확장. 작은 단위로 분리. 클라이언트 서버가 독립적으로 개선 되어야 한다. 자원 식별, 메세지를 통한 리소스 조작, 자기 서술적 메세지 5...

JAVA/SpringBoot 2024.04.09

Spring Boot - 간단한 Web , HTTP, Get, Post, Put

웹이란? world wide web. 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 공간, HTTP: Hyper Text Transefer Protocol 데이터를 주고 받는 프로토콜. 웹에서 우리가 데이터를 주고 받을 때 어떠한 형태로 보내겠다 라는 약속이 있어야 한다 (특정 문자를 보낼거야 - 보내는 프로토콜이 HTTP) HTML, XML, JSon, image , Voice, Video 등 컴퓨터에서 다루는 다양한 것을 전송 할 수 있다. 클라이언트는 요청 메세지를 전송할 때 서버에 http 통신을 통해 특정 데이털을 요청하는 데 이 때 필요한 것이 어디로 요청할까 하는 URI. 서버는 항상 리슨, 요청 대기 상태이다. 요청 메세지가 들어오면 메세지를 수신한다 - 이 메..

JAVA/SpringBoot 2024.04.09

게시판 프로젝트 - 첨부파일 다운로드

첨부파일을 다운로드 하는 기능을 구현할 것 -FileMapper 인터페이스 , 첨부파일 상세정보 조회 메서드 추가하기 첨부파일 다운로드는 게시글 상세 페이지에서 파일명을 클릭했을 때 실행된다. 이때 파일의 id(Pk)를 컨트롤러로 전달해 다운로드할 첨부파일의 상세정보를 DB에서 조회해야 한다. DB에서 첨부파일 상세정보를 조회할 수 있도록 FileMapper 인터페이승[ 아래 메서드를 추가한다. /** * 파일 상세정보 조회 * @param id - PK * @return 파일 상세정보 */ FileResponse findById(Long id); -FileMapper XML 첨부파일 상세정보 조회 SQL쿼리 작성 앞에서 추가한 메서드와 연결할 파일 상세정보 조회쿼리를 작성한다. SELECT FROM t..

JAVA/SpringBoot 2023.11.16

게시판 프로젝트 - 첨부파일 추가, 수정, 삭제 및 기존 파일 유지

게시글에 등록된 첨부파일을 상세 페이지에 출력해주는 기능을 구현. 기존에 첨부파일이 업로드된 게시글을 수정할 때 첨부파일을 추가, 변경, 삭제하는 방법과 파일에 변화가 없을 때 기존 첨부파일을 유지하는 방법을 알아볼 것 - 파일 응답 Response 클래스 생성 DB에 저장된 파일 정보를 조회하는 용도의 응답 클래스이다. 여기서 파일이란 실제로 디스크에 업로드된 후 파일 테이블(tb_file) 에 저장되는 정보를 의미한다. package com.study.domain.file; import lombok.Getter; import java.time.LocalDateTime; @Getter public class FileResponse { private Long id; // 파일 번호 (PK) private..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 다중 첨부 파일 업로드, 다운로드 구현

- 파일 테이블 생성 CREATE TABLE `tb_file` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '파일 번호 (PK)', `post_id` bigint(20) NOT NULL COMMENT '게시글 번호 (FK)', `original_name` varchar(255) NOT NULL COMMENT '원본 파일명', `save_name` varchar(40) NOT NULL COMMENT '저장 파일명', `size` int(11) NOT NULL COMMENT '파일 크기', `delete_yn` tinyint(1) NOT NULL COMMENT '삭제 여부', `created_date` datetime NOT NULL DEFAULT current_..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 로그인/ 로그아웃/ 로그인 세션 체크 기능

로그인, 로그아웃 기능을 구현하고, 인터셉터를 이용해 로그인이 되어있지 않은 경우, 게시판에 접근 할 수 없게 구현할 것 - MemberService 로그인 메서드 추가 public MemberResponse findMemberByLoginId(final String loginId) { return memberMapper.findByLoginId(loginId); } /** * 회원 정보 수정 * @param params - 회원 정보 * @return PK */ @Transactional public Long updateMember(final MemberRequest params) { params.encodingPassword(passwordEncoder); memberMapper.update(para..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 회원가입 기능

DB에 회원 데이터를 관리할 테이블을 생성한 후 회원가입 기능을 구현해보자 - 회원 테이블 CREATE TABLE `tb_member` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '회원 번호 (PK)', `login_id` varchar(20) NOT NULL COMMENT '로그인 ID', `password` varchar(60) NOT NULL COMMENT '비밀번호', `name` varchar(20) NOT NULL COMMENT '이름', `gender` enum('M','F') NOT NULL COMMENT '성별', `birthday` date NOT NULL comment '생년월일', `delete_yn` tinyint(1) NOT NULL..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - Ajax(비동기) 페이징 새로고침시 페이지 번호 유지하기

게시글과 같은 동기 처리는 페이지를 이동하는 시점에 주소URL가 변경되기 때문에 브라우저를 새로고침해도 페이지 번호화 검색 조건이 유지되지만 , Ajax는 페이지 번호에 해당되는 데이터를 조회하되 주소는 변경하지 않기 때문에 브러우저를 새로고침해도 페이지 번호가 유지되지 않는다는 문제가 있다. Histroy ApI 를 이용해 uri를 강제로 변경, 비동기 페이징 처리의 새로고침 문제를 해결한다. Histroy API? 사용자가 페이지에 접근을 하면 브라우저에 세션 기록이 쌓이게 된다. 이 세션 기록에 접근 할 수 있게 해주는 것이 브라우저의 history객체이다. - drawPage() view.html의 drawPage() 를 다음과 같이 변경해준다. // 페이지네이션 HTML draw function..

JAVA/SpringBoot 2023.11.15
728x90
반응형