개인프로젝트 배포
RDS 구매
Database Navigator plugin 설치
intellj에서 RDS 연결
EC2설정
➜ ~ ssh -i {key} ubuntu@ec2-3-34-47-86.ap-northeast-2.compute.amazonaws.com
ubuntu@ip-172-31-45-171:~$ sudo apt-get update
....
Fetched 23.7 MB in 4s (5351 kB/s)
Reading package lists... Done
ubuntu@ip-172-31-45-171:~$ sudo apt-get install openjdk-11-jdk
....
done.
ubuntu@ip-172-31-45-171:~$ java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)
jar파일 전송
실행
API Test
API명세서
Method | URL | function | Request | Response |
GET | /api/boards | 전체 게시글 목록 | - | { "success": true, "data": [ { "id": 1, "title": "title1", "author": "kim", "password": "1234", "content": "content1", "createAt": "2022-07-28T05:03:59.022+00:00", "modifiedAt": "2022-07-28T05:03:59.022+00:00" }, { "id": 2, "title": "title2", "author": "kim", "password": "1234", "content": "content2", "createAt": "2022-07-28T05:15:53.095+00:00", "modifiedAt": "2022-07-28T05:15:53.095+00:00" }, { "id": 3, "title": "title3", "author": "kim", "password": "1234", "content": "content3", "createAt": "2022-07-28T05:23:32.393+00:00", "modifiedAt": "2022-07-28T05:23:32.393+00:00" } ] } |
GET | /api/boards/{id} | 특정 게시글 가져오기 | - | { "success": true, "data": { "id": 3, "title": "title3", "author": "kim", "password": "1234", "content": "content3", "createAt": "2022-07-28T05:23:32.393+00:00", "modifiedAt": "2022-07-28T05:23:32.393+00:00" } } |
POST | /api/boards | 글쓰기 | { "title" : "title3", "author" : "kim", "content" : "content3", "password" : "1234" } |
{ "success": true, "data": { "id": 3, "title": "title3", "author": "kim", "password": "1234", "content": "content3", "createAt": "2022-07-28T05:23:32.393+00:00", "modifiedAt": "2022-07-28T05:23:32.393+00:00" } } |
POST | /api/boards/auth/{id} | 비밀번호 확인하기 | password : 1234 password : 12345 |
{ "success": true, "data": "비밀번호가 일치합니다." } { "success": false, "data": "비밀번호가 일치하지 않습니다." } |
PUT | /api/boards/{id} | 특정 게시글 수정하기 | { "title" : "title3 update", "author" : "kim", "content" : "content3 update" } |
{ "success": true, "data": { "id": 3, "title": "title3 update", "author": "kim", "password": "1234", "content": "content3 update", "createAt": "2022-07-28T05:23:32.393+00:00", "modifiedAt": "2022-07-28T05:27:19.442+00:00" } } |
DELETE | /api/boards/{id} | 특정 게시글 삭제하기 | - | { "success": true, "data": 2 } |
pw 불러올때..
requestbody로 안됌
requestParam 으로 됌?
[Web] Param vs Query vs Body
request 객체는 API를 컨트롤하기 위한 메서드로 아래 세가지를 담고 있다.
- param
- query
- body
param : 주소에 포함된 변수를 담는다. 서버에서 PathVariable 로 받는다.
ex) naver.com/post/12345
query : URL 끝에 ? 이후에 변수를 넣는다. &로 여러개의 데이터를 넘길수 있다. Query Parameter로 받는다.
ex) naver.com/post?post_id=1234&key=value
body : xml, json, Multi Form 등의 데이터를 담는다. URL에서 확인할 수 없다. 개발자 도구에서 확인이 가능하니 민감한 데이터는 암호화 해서 보내도록 한다.
param vs query
resource 를 식별해야 하는 상황에서는 param(path variable)
정렬이나 필터링을 해야하는 상황에서는 query(query parameter)
query vs body
query 를 사용할 때
인수가 디버깅하는 동안 보고 싶을 때
코드를 개발하는 동안 수동으로 호출 할 수 있기를 원할 때
여러 웹 서비스에서 인수가 공통적인 경우
다음과 같은 다른 콘텐츠 유형을 이미 보내고 있는 경우
body 를 사용할 때
인수에 플랫 키-값 구조가 없는 경우
직렬화 된 이진 데이터와 같이 값이 사람이 읽을 수 없는 경우
매우 많은 수의 인수가 있을 때. Body에는 제한이 없음
코드리뷰
구조적인것보다는 코드 위주
어떤 기능을 위해 코드를 이렇게 구현했다.
어떤 문제가 있었는데 어떻게 해결했다.
상대방 말 잘듣기
Reference
'항해99' 카테고리의 다른 글
[WIL] 3주차 (0) | 2022.07.31 |
---|---|
[TIL] 항해 19일차 (0) | 2022.07.29 |
CRUD 와 HTTP Method (0) | 2022.07.26 |
[TIL] 항해14일차 (0) | 2022.07.25 |
[WIL] 항해 2주차 (0) | 2022.07.24 |
댓글