전체 글 439

스프링 40강. API Controller

개념을 잡아가면서 블로그 프로젝트 V1을 완성했고, V2를 만들어 코드를 좀 더 깔끔하게 리팩토링 해보자. 그러기 위해서 새롭게 카테고리화했다. 1. util이라는 폴더가 생겼다. 여러 곳에서 재사용되는 공통 메서드는 util 폴더 아래 만들어줄 것이다. 2. web 아래 api 폴더를 만들어 api 전용 컨트롤러를 만들어준다. V1에서는 컨트롤러 안에 파일을 리턴해주는 메서드와 @ResponseBody를 붙여 데이터를 리턴해주는 메서드를 같이 만들어두었다. 우리는 서버를 만들 때 브라우저가 요청한다는 가정 하에 만들었다. 하지만 컨트롤러로 요청하는 프론트엔드 프로그램은 종류가 너무나도 다양하다. 스윙(자바), 안드로이드 어플(자바), 포스트맨, 브라우저 등등 안드로이드 어플로 예를 들면 핸드폰 어플에서..

Spring/Blog-V2 2022.03.21

Git 8강. github 크롬 플러그인 Octotree

크롬 웹 스토어에서 github 검색 Octotree 설치 해준다. https://chrome.google.com/webstore/detail/octotree-github-code-tree/bkhaagjahfmjljalopjnoealnfndnagc?hl=ko Octotree - GitHub code tree GitHub on steroids chrome.google.com 크롬에 플러그인을 설치해주면 github 화면 왼쪽에 버튼이 생성된다. 버튼 위에 마우스만 갖다 대면 해당 Repository의 트리가 보기좋게 나온다. 이 트리로 파일에 접근이 가능하기 때문에 설치하면 편리하다!

Git 2022.03.21

스프링 38강. 스프링부트 시간 관련 어노테이션

package site.metacoding.blogv2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @EnableJpaAuditing // 시간을 자동으로 넣어주는 JPA 어노테이션 추가 @SpringBootApplication public class BlogV2Application { public static void main(String[] args) { SpringApplication.run(BlogV..

Spring/Blog-V2 2022.03.21

Typora HTML 문법

HTML을 사용하여 순수 마크다운이 지원하지 않는 콘텐츠의 스타일을 지정할 수 있다. 예를 들어, this text is red 빨간색으로 텍스트를 추가하는데 사용한다. 밑줄 GFM의 마크다운에는 밑줄이 지정되어 있지 않지만 밑줄 HTML 태그를 사용하여 생성할 수 있다. Underline 컨텐츠 삽입 일부 웹사이트는 타이포라에 붙여넣을 수도 있는 iframe 기반 내장 코드를 제공한다. 동영상 HTML 태그를 사용하여 비디오를 삽입할 수 있다.

개인 공부 2022.03.19

Typora 스팬 요소 문법

Span 요소는 입력 직후 구문 분석되고 랜더링된다. 해당 스팬 요소의 중간에 커서를 이동하면 해당 요소가 마크다운 소스로 확장된다. 다음은 각 span 요소의 구문에 대한 설명이다. 연결 마크다운은 인라인과 참조라는 두 가지 스타일의 링크를 지원한다. 두 스타일 모두에서 링크 텍스트는 [대괄호]로 구분된다. 인라인 링크 인라인 링크를 생성하려면 링크 텍스트의 닫는 대괄호 바로 뒤에 일반 괄호 세트를 사용한다. 괄호 안에 링크가 가리키고자 하는 URL과 링크의 선택적 제목을 따옴표로 묶는다. This is [an example](http://example.com/ "Title") inline link. [This link](http://example.net/) has no title attribute. ..

개인 공부 2022.03.19

Typora 블록 요소 문법

단락 및 줄 바꿈 단락은 단순히 하나 이상의 연속된 텍스트 줄이다. 마크다운 소스 코드에서 단락은 두 개 이상의 빈 줄로 구분된다. ReturnTypora에서는 새 단락을 생성하기 위해 하나의 빈 줄(한번 누름)만 있으면 된다. 헤더 헤더는 헤더 수준 1~6에 해당하는 행 시작 부분에 1~6개의 해시(#)문자를 사용한다. # This is an H1 ## This is an H2 ###### This is an H6 인용구 마크다운은 블록 인용에 이메일 스타일의 > 문자를 사용한다. 다음과 같이 표시된다. > This is a blockquote with two paragraphs. This is first paragraph. > > This is second paragraph. Vestibulum en..

개인 공부 2022.03.19

스프링 37강. 블로그 세부페이지 수정

글쓰기 상세페이지에 삭제 버튼을 추가해주자. 수정 버튼은 수정 페이지 이동이니까 get요청 -> 하이퍼링크 삭제는 get 요청으로 할 수 없으니까 버튼으로 만들어준다. 현재 상태는 다른 아이디로 로그인해도 글 상세보기 페이지에서 수정과 삭제 버튼이 보이게 되어있다. 해당 게시글의 userId(FK)와 세션의 principal id를 비교해서 권한을 체크해준다. 동일하면 글 삭제 가능, 같지 않으면 글 삭제 불가능하게! delete 요청에는 body가 없기 때문에 게시글의 id로 한번 더 SELECT 해서 userid를 확인해야 한다. // DELETE 글 삭제 /post/{id} -> 글 목록으로 가기 - 인증 O @DeleteMapping("/s/post/{id}") public @ResponseBod..

Spring/Blog-V1 2022.03.18

스프링 36강. 스프링 json 파싱 @RequestBody

유저 수정 메서드에서만 스프링 기본 파싱 전략을 바꿔야 한다. 유저 수정은 자바스크립트 fetch 함수를 통해 json으로 데이터를 받을 것이기 때문에 스프링이 데이터 받을 때 json으로 파싱 할 수 있도록 기본 파싱 전략을 변경해줘야 한다. @RequestBody는 json으로 파싱 해주는 어노테이션이다. RequestBody와 ResponseBody를 붙이면 Raw 하게 버퍼로 읽고 쓰겠다는 말이다. 날 것 그대로! RequestBody를 안 붙이면 request.getParameter가 발동하여 x-www-form-urlencoded 타입만 파싱 하기 때문이다. 만약 (@RequestBody String user) 스트링 타입으로 받는다면 json이 스트링 타입으로 들어올 것이다. 이 타입을 Us..

Spring/Blog-V1 2022.03.18