반응형

기간 : 2020.12.10 ~ 2021.05.26

교육 내용 : 교육내용 : Java/Spring 풀스택 개발자 과정(JSP, JQuery, Open API 활용)

대표 프로젝트 : 뉴런(NEWLEARN)

수료 후기

  • 개발자로서 첫 발을 딛게 된 교육이기 때문에 교육과정에 입과하기 전부터 많은 친구, 인터넷, 친적 등 다방면으로 어디서 어떻게 시작하면 좋을지 알아보았다. 그렇게 결정하고 입과하게 된 곳이 쌍용교육센터였다. 대학교 때, 공대생이었기 때문에 C언어 수업을 들었던 나는 자신이 있었다. 그러나 java는 초반에는 쉬었으나 갈수록 어려워지는 것이 느껴졌다. 그래서 교육 초반에 마음이 맞는 사람들을 모아 매일 같이 줌으로 수업을 리뷰하는 스터디를 진행했다. 돌이켜보면 이 스터디가 나에게 큰 도움이 된거 같다. 스터디원이라는 좋은 사람들도 얻게 되었고, 기본기를 더 충실하게 다질 수 있었기 때문이다. 그 이후로 시간이 참 빨리 지나간 것 같다. 새로운 것을 배울 때마다 정신이 없었고, 내 자신이 잘하고 있는가에 대한 불안감도 있었다. 지금 와서 생각해보면 내 생각이지만 열심히 잘 해오고 있는 것 같다.
  • 아쉬웠던 점은 코로나로 인해 수업이 비대면인 기간이 대부분이었다는 것이다. 비대면으로 수업을 하여 집중력도 떨어졌고, 팀원들과 프로젝트를 진행함에 있어서 불편한 점이 많았다. 핑계이지만 코로나 시기가 아니었다면 더 열심히 할 수 있었을 것 같다.

학원 입과 전에 면접을 봤는데 그 때, 이런 질문을 받았었다.

 

"기존에 회사는 공채로 입사했는데 후회는 없으신가요?"

 

그 질문을 듣고 나는 속으로 웃음이 났다. 전혀 후회가 없었기 때문이다. 오히려 개발을 배우는 것에 대한 설렘으로 가득했던 것 같다. 그 때의 그 감정을 앞으로도 잊지 않고 가져가려고 한다.

반응형

'JunFe 소개' 카테고리의 다른 글

의료장비 CS 엔지니어  (0) 2021.07.15
반응형

근무 기간 : 2019.01 ~ 2020.10

근무 형태 : 정규직

직무 : 의료장비 CS 엔지니어

주요 업무 : MRI / CT 등 의료장비 유지보수 작업, 정비, 설치

후기

  • 대학교를 졸업하자마자 운이 좋게 바로 취업이 되어 사회 생활을 시작하였다. 사실 반도체 직군 쪽으로만 생각하고 준비하였던 나였기에 의료장비 엔지니어가 되는 것은 조금 낯선 일이었다. 회사의 규모가 조금 있었고, 연봉 부분이 당시의 나를 다녀보게 만들었지 않나 싶다. 의료쪽으로는 모르는 부분이 많았지만 점차 배워가며 자신감을 얻었다. 회사 사람들과 소통하는 법을 배웠고, 고객사인 병원 사람들을 어떻게 대해야하는지도 배웠다. 1년 정도의 시간이 지나며 스스로 잘하고 있다는 자신감을 얻었다.
  • 엔지니어로 일하면서 의료장비에 대한 지식뿐만 아니라, 일상 생활에 대한 지혜도 많이 배웠다. 어떠한 것이 고장났을 때, 고치고 해결할 수 있는 능력을 가지게 되었고, 실제로 친구집 로봇 청소기의 고장난 센서를 교체해 고쳐 주기도 하였다.
  • 그러나 평생 직장으로 삼을 일은 아니라고 판단했다. 1년 반이 지난 사원이었던 스스로가 발전하고 있지 못하고 있다고 판단하였고, 내가 진짜 하고 싶은 일이 무엇인지 곰곰이 생각해보았다. 나는 설계나 개발처럼 무언가를 만드는 것을 원하던 학생이었다는 것이 떠올랐고, 생각한 것을 코드를 통해 구현하는 개발에 매력을 느껴 퇴사를 하고 지금의 선택을 하였다.
반응형
반응형

학원에서 교육을 듣던 중간 쯤 지나가는 말로 친구 eva에게 생일 선무롤 간단한 페이지를 만들어 주겠다는 약속(?)을 지키기 위해 이지업 강의 - 포토그램 만들기를 토대로 만들은 cheolstagram을 evastagram으로 바꾸어서 aws를 이용해 생일글을 전달해 주려고 배포하면서 기록을 남긴다.

 

이지업 I 모두를 위한 코딩교육

 

이지업 I 모두를 위한 코딩교육

안녕하세요, 모두를 위한 코딩교육 이지업입니다! 풍부한 강의와 함께 지식을 공유할 수 있는 곳! 20년의 IT교육 역량, 이제 온라인에서 만나보세요!

www.easyupclass.com

 

우선 cheolstagram의 기반이 된 강의의 출처이다. 설명도 세세하게 잘해주시고, 확실히 보면서 많이 늘었다. 무엇보다 가격대비 최고이니 필요하신 분들은 들어보는 걸 강력 추천드립니다.

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 시큐리티를 활용한 소셜 로그인 등으로 애플리케이션을 개발하고, 뒤이어 AWS 인프라의 기본 사용법과

www.aladin.co.kr

 

위 책의

Ch. 6 AWS EC2

Ch. 7 AWS RDS

Ch. 8 서버 연결

을 참고했습니다.

 

AWS Management Console

 

AWS Management Console

AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.

aws.amazon.com

 

AWS 사이트에 들어가서 로그인을 한다. 아이디가 없다면 회원가입을 해야하는데 회원가입 과정에서 신용카드가 필요하다. 회원가입 과정에서 1달러가 결제됐다가 취소되기도(?) 한다.(가입한지는 오래돼서 정확히는 기억이 안난다.)

 

로그인을 하면 아래와 같은 화면이다.

여기서 왼쪽 상단의 서비스 → 모든 서비스 → EC2로 들어가준다.

 

주황색 인스턴스 시작 버튼을 눌러 인스턴스를 생성한다.

 

맨 위에 Amazon Linux 2 AMI (HVM), SSD Volume Type 을 선택한다.

Amazon Linux를 사용하는 이유는 아마존이 개발하고 있기 때문에 서비스와의 연동이 쉽고 yum이 빠르다.

🏀 ANDONE - yum이란 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자이다.

 

배포 연습을 하는 것이기에 프리티어로 선택한다. 프리티어는 기간 1년동안 무상으로 사용할 수 있다.

다음: 인스턴스 세부 정보 구성 클릭.

 

여기선 설정할 것이 없다.

다음: 스토리지 추가

 

처음 들어가면 스토리지 크기가 기본 8(?)로 되어있는데 프리티어는 30GB까지 무료이므로 우리는 사용할 수 있는 최대로 사용해주자. 30으로 크기 변경 후 다음: 태그 추가.

 

여기서는 태그 추가를 클릭하여 키는 name으로 하고 값은 인스턴스 이름으로 지정하고 싶은 것으로 작성한다.

다음: 보안 그룹 구성

 

보안 그룹을 구성해야하는데 여기서 지정된 포트번호로 기본적인 통신을 하기 때문에 잘 해야한다.

 

방화벽의 기본요소는 다음과 같다.

  • Inbound: 외부에서 EC2 인스턴스로 들어오는 트래픽입니다. 대표적인 것들로는 HTTP, HTTPS, SSH, RDP 등이 있습니다.
  • Outbound: EC2 인스턴스에서 외부로 나가는 트래픽입니다. EC2 인스턴스 안에서 인터넷을 사용할 경우 Outbound라 할 수 있습니다. 대표적으로 파일을 다운로드하거나, 외부 SSH로 접속하는 것 등이 있습니다.
  • Type: 프토토콜 형태입니다. 프로토콜은 크게 TCP, UDP, ICMP로 나눌 수 있습니다.
  • Port, Port Range: 포트 번호입니다. TCP, UDP 프로토콜은 0~65535 사이의 포트 번호를 사용하게 됩니다(ICMP는 포트 번호를 사용하지 않습니다). 우리가 익히 알고 있는 HTTP는 80번 SSH는 22번처럼 각 서버 애플리케이션들은 고유의 포트 번호를 사용하고 있습니다.
  • Source/Destination: 연결 혹은 접속 가능한 IP 대역을 뜻합니다. Inbound 일 경우 Source, Outbound일 경우 Destination이라 부릅니다. IP 주소 하나만 지정할 수도 있고 CIDR 표기 방법을 이용하여 일정한 대역을 설정할 수 있습니다.
  • Rule: 지금까지 설명한 Inbound, Outbound, Type, Port, Source/Destination을 조합한 것을 Rule(규칙)이라고 합니다.

SSH에는 소스에 내 IP로 선택하면 오른쪽에 ip가 자동으로 적용된다.(추후에 인스턴스에 SSH로 접속할 ip)

규칙을 추가하여 HTTPS, 사용자 지정 TCP(8080 - Tomcat) 포트를 열어주자. 추후에 db를 위해 더 추가할 것

이제 모든 설정이 끝났다. 검토 및 시작을 눌러준다.

 

내용을 한번 더 검토해주고 시작하기를 누른다.

 

 

시작하기를 누르면 키페어 생성하는 창이 뜬다.

새 키 페어 생성을 선택한 후 키 페어의 이름을 입력해주고, 키 페어 다운로드를 본인이 기억하는 위치로 꼭 저장해둔다!!!!

추후에 SSH로 ec2 인스턴스에 접속할 때도 사용.

 

인스턴스가 생성된 화면이다. 인스턴스 보기를 눌러보자.

 

아래쪽에 새로운 인스턴스가 생성된 것을 볼 수 있다. (위에 것은 기존에 사용하던 인스턴스이니 무시하자.)

이제 EC2의 서버를 고정 IP로 사용하기 위해서 탄력적 IP를 생성해야 한다. 탄력적 ip를 사용하지 않으면 ec2 인스턴스를 재시작 할 때 마다 IP가 변경되어 번거로운 경우가 발생한다.

 

왼쪽 메뉴바에서 >네트워크 및 보안 >탄력적 IP를 클릭.

 

오른쪽 위에 탄력적 IP 주소 할당 클릭.

 

할당 클릭하면 바로 탄력적 IP 주소가 할당된다. 필자는 이미 받은 IP주소가 있어서 할당하진 않겠다.(알기로는 한개까지 무료이다.) 그리고 여기서 중요한 것은 생성된 탄력적 IP 주소를 인스턴스와 바로 연결해주어야 한다는 것이다. 그렇지 않으면 요금이 나가는 것으로 알고 있다. 그러므로 바로 연결해주자.

 

해당 IP 선택 후 작업 > 탄력적 IP 주소 연결 클릭

 

인스턴스를 선택해주고, 프라이빗 IP 주소를 선택해 준 후 연결 클릭.

 

탄력적 IP 주소에서 IP 주소에 연결된 인스턴스 ID를 확인할 수 있다.

 

인스턴스를 확인해보면 탄력적 IP가 지정된 것을 확인할 수 있다. (위의 인스턴스 확인 - 필자 기존 사용하던 것)

그럼 이제 EC2 인스턴스에 터미널로 접속을 해보자.

ssh ~i /경로/pem키파일명 ec2-user@인스턴스ip주소
# 인스턴스 ip 주소는 할당받은 탄력적 ip 주소

 

묻는 질문에 yes로 대답하면 EC2에 성공적으로 접속된다.

(Permisson denied 메세지가 뜨며 접속이 거부되는 경우가 있는데 이는 아까 받은 pem키 권한의 문제이다. 다음과 같이 권한을 변경해주면된다.)

chmod 600 /pem키경로/pem키파일명

이렇게 생성한 EC2 인스턴스에 접속까지 완료하였다.

반응형
반응형
 
이 글은 이지업 -포토그램 만들기 수업을 듣고 작성하였습니다.

 

  1. .txt 파일 응답하기
  1. 스프링부트가 지원하는 .mustache 파일 응답.
  1. 스프링부트가 버린 .jsp 파일 응답

 

jsp 파일 동작 과정

.jsp 파일의 동작 과정은 위 그림과 같다.

우리가 사용하는 톰켓이 템플릿엔진(.mustache, .jsp)에 포함된 java코드를 해석해서 HTMl 페이지로 응답한다.

 

 

1. .txt파일 응답하기.

HttpRespController.java를 생성하여 아래 코드를 작성한다.

이 때 @Contorller를 써야하는데 그 이유는 파일을 리턴할 것이기 때문이다.

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller // 파일을 리턴해줄 것이기 때문.
public class HttpRespController {

	@GetMapping("/txt")
	public String txt() {
		return "a.txt";
	}
}

 

src/main/resources/static에 a.txt를 만들어준다. 그리고 마음대로 글을 작성해준다.

위 경로에 작성하는 이유는 우리가 프레임워크를 사용중이기 때문이다. 프레임워크는 틀이 정해져 있다.

- 일반 정적 파일들은 resources/static 폴더 내부가 default 경로이다.

This is a.txt

 

그 후 서버를 실행해 크롬에서 페이지를 호출해본다. (Get방식이기 때문에 웹에서 확인 가능)

 

text 파일의 내용을 그대로 불러오는 것을 확인할 수 있다.

 

2. .mustache 파일 응답.

https://mvnrepository.com/ 접속 (java 관련된 라이브러리가 다 모여있다.)

mustache 검색 후 Spring Boot Starter Mustache 클릭.

 

제일 최신 버전 (현재 2.5.0) 들어가서 Maven 안에 코드 복사.

 

복사한 코드를 pom.xml의 dependencies 아래 복사해준다.

이 때, 버전부분은 지우고 정령해준 후 저장하여 적용해준다.(저장하면 자동 적용.)

그 후 서버를 껐다가 다시 켜준다.

 

 

그리고 static에 b.mustache 파일을 만들어 준다.

이 때, .mustache 형식은 따로 존재하지 않으므로, 먼저 html파일로 만든 후, 그 파일을 .mustache로 만든다.

그리고 아래와 같이 테스트 코드를 작성.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>This is mustache</h1>
</body>
</html>

 

Controller로 가서 mustache를 불러오는 코드를 작성해주자.

@GetMapping("/mus")
public String mus() {
	return "b.mustache";
}

 

그리고 크롬에서 확인해보면 이번엔 페이지가 뜨지 않고 파일이 다운로드 되는 화면을 볼 수 있다.

 

이는 웹 브라우저가 해석을 하지 못했기 때문이다. 즉, 톰캣 쪽에서 해석이 작동하지 않았다는 말이다.

그러면 어떻게 해결해야할까?

먼저, b.mustache 파일의 경로를 static에 templates로 옮겨준다

그리고 controller 코드에서 b.mustache의 확장자인 .mustache를 지운다.

@GetMapping("/mus")
	public String mus() {
		return "b";
	}

 

그리고 다시 웹에서 결과 확인하면 아래와 같다.

 

 

3. .jsp 응답하기.

https://mvnrepository.com/ 접속

jasper 검색 → Tomcat Jasper » 9.0.41 dependency 추가 → 기존 mustache dependency 주석처리(두 개 동시에 의존성 주입하면 충돌.)

 

src/main/ 아래 webapp/WEB-INF/views 폴더 생성해서 c.jsp 파일 만들어서 아래 코드를 작성해준다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>This is c.jsp</h1>
</body>
</html>

 

그리고 Controller 단에서 c.jsp를 불러오는 파일을 작성해준다. 근데 jsp은 기본적으로 스프링 부트에서 제공하지 않으므로 읽어오지 못한다. .mustache처럼 불러오기 위해서는 다른 설정을 해줘야한다.

먼저, application.properites 파일을 이름 변경해서 application.yml로 바꿔준다.

그리고 아래 코드를 작성해준다.

spring:
  mvc:
    view:
      prefix: WEB-INF/views/
      suffix: .jsp

 

jsp엔진 사용. src/main/webapp 폴더가 디폴트 경로!

prefix와 suffix를 통해 경로를 만들어줌.(view resolver가 이 역할을 수행)

이제 .jsp 파일도 정상적으로 읽어올 수 있다. 웹 브라우저를 통해 결과를 보면

 

.jsp 파일도 잘 읽어오는 것을 확인할 수 있다.

 

 

 

반응형
반응형

이 글은 이지업 - 포토그램 만들기를 토대로 작성하였습니다.

 

HttpResponseJsonController.java를 만들어서 @RestController로 만들어 준 후

json으로 응답하는 방법 3가지를 알아보자.

 

1. json형식으로 직접 return 해주기

@GetMapping("/resp/json") 	
public String respJson() { 
	return "{\"username\":\"cos\"}"; 	
}

 

여기서 return 안에 들어가는 문자는 메모장을 켜서 아래와 같이 작성해준다.

{"username":"cos"}

그리고 그대로 복사해서 return 값에 넣어주면 위와 같이 정리되어 들어간다.

 

 

2. java object로 받아서 String형으로 반환

@GetMapping("/resp/json/object") 	
	public String respJsonObject() { 		
	User user = new User(); 		
	user.setUsername("Junfe"); 		 		
	String data = "{\"username\":\""+user.getUsername()+"\"}"; 		
	return data; 	
}

user 객체를 생성해서 그 안에 "Junfe"라는 내용을 담는다.

그리고 data라는 String 형을 선언해서 json 형식으로 작성해준다.

 

실제 개발하면서 절대로 이렇게 사용하진 않는다. data에 들어가는 저 내용을 직접 작성하는 것은 정말 힘든 일일 것이다.....

 

 

3. MessageConverter 가 자동으로 java object를 json 형태로 변환

@GetMapping("/resp/json/javaobject") 	
public User respJsonJavaObject() { 		
	User user = new User(); 		
	user.setUsername("Junfe"); 		 		
	return user;
	// 1. MessageConverter 가 자동으로 JavaObject를 Json으로 변경해서 통신을 통해 응답을 해준다. 					
	// 2. @RestController 일때만 MessageConverter가 작동한다. 	
}

여기서는 객체 자체를 반환한다. 그러면 MessageConverter가 자동으로 JavaObject를 Json으로 변경해준다.

 

이 때, 주의할 점은 controller가 @RestController 여야 한다는 것이다.

 

 

위 3가지 방법의 결과는 모두 아래와 같다.

 

크롬에서 json viewer를 확장하여 사용하기 해놔야 위와 같이 표기된다.

 

 

반응형
반응형

이 글은 이지업 - 포토그램 만들기 수업을 토대로 작성하였습니다.

 

1. http header란?

웹 서버 및클라이언트 사이에서, - 일반 문서데이터(바디 본문) 이외에, 추가적인정보를 교환할 수 있도록, - HTTP 메세지 선두에 삽입되는 요소로 수십개의 다양한 종류를 갖음

 

헤더 정보에 Content-Type도 담긴다.

대표적인 3가지 Content-Type은 아래와 같다.

  1. x-www-form-urlencoded (스프링부트는 기본적으로 이 타입을 파싱해준다.) <key=value 형태>
  1. text/plain <안녕하세요 형태>
  1. application/json <{"username" : " junfe"} 형태>

 

 

HttpBodyController.java 전체 코드
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RestController;  
import com.cos.controllerdemo.domain.User;  

@RestController 
public class HttpBodyController {  	
	// 로그를 찍어줌. 
	private static final Logger log = LoggerFactory.getLogger(HttpBodyController.class);
    
    @PostMapping("/body1") 	
    public String xwwwformurlencoded(String username) {
    	log.info(username); 		
    	return "key=value 전송옴."; 	
    } 	 	
    
    @PostMapping("/body2") 	
    public String textplain(@RequestBody String data) { 
    	//평문. 		 		
        log.info(data); 		
        return "plain/text 전송옴."; 	
    } 	 	
    
    @PostMapping("/body3") 
    public String applicationjson(@RequestBody String data) { 
    	log.info(data); 		 		
        return "json 전송옴.";
    }
    
    @PostMapping("/body4") // json데이터를 자바 object로 바로 받음. 	
    public String applicationjsonToObject(@RequestBody User user) { 
    	log.info(user.getUsername()); 	
        return "json 전송옴."; 	
    }
}

 

 

postman을 이용해서 각각 data를 전달해보고 결과를 보자.

  1. x-www-form-urlencoded 로 data 전달 및 결과
postman을 통한 data 전달.

 

결과

 

2. text/plain 을 이용한 data 전달 및 결과

data 전달

 

결과

 

3. application/json 을 통한 data 전달 및 결과

jason data 전달
결과

 

그런데 json에서는 원하는 값만 얻어 올 수가 없고 통으로 표기된다. json 데이터를 바로 받아오기 위해서 User 클래스를 추가하고 4번째 메소드를 생성해보자.

 

User.java 코드

public class User { 
	private String username;  
    
    public String getUsername() { 	
    	return username; 	
    }  
    
    public void setUsername(String username) { 	
    	this.username = username; 	
    } 
}    

 

4번째 메소드는 전체 코드에 적혀있는 applicationjsonToObject 메소드이다.

이를 실행해보면 결과는 다음과 같다.

json data를 java object로 바로 받아온다.

 

json 데이터를 java object 로 바로 받아오는 것을 확인할 수 있다.

 

 

 

 

반응형
반응형

이 글은 이지업 - 포토그램 만들기 수업을 토대로 작성하였습니다.

 

http 쿼리 스트링(querystring), 주소 변수 매핑(path variable)에 대해 알아보자.

구체적인 데이터 요청시에 쿼리스트링이나 주소변수매핑이 필요하다. 스프링 부트에서는 일반적으로 주소변수매핑을 사용한다. 그 이유는 편리하기 때문이다. 아래에 코드로 확인해보자.

 

1. 쿼리스트링(querystring)

쿼리스트링의 구조는 다음과 같다.

 

주소? type=고구마피자

 

이 글은 이지업 - 포토그램 만들기 수업을 토대로 작성하였습니다.

@GetMapping("/pizza")
	public String chickenQuery(String type) {
		return type+" 배달갑니다. (쿼리스트링)";
	}

 

RestController 안에 GetMapping으로 작성하였다. 데이터의 주제는 필자가 좋아하는 피자로 하였다.

결과 창을 보면 아래와 같다.

쿼리스트링 결과창

 

 

2. 주소변수매핑(path variable)

구조

주소/고구마피자

@GetMapping("/pizza/{type}")
	public String pizzaPath(@PathVariable String type) {
		return type+" 배달갑니다. (주소 변수 매핑)";
	}

결과는 아래와 같다.

 

주소변수맵핑 결과창

전체 코드

더보기
package com.cos.controllerdemo.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class QueryPathController {

	@GetMapping("/pizza")
	public String pizzaQuery(String type) {
		return type+" 배달갑니다. (쿼리스트링)";
	}
	
	@GetMapping("/pizza/{type}")
	public String pizzaPath(@PathVariable String type) {
		return type+" 배달갑니다. (주소 변수 매핑)";
	}
}
반응형
반응형

 

이 글은 이지업 - 포토그램 만들기 수업을 토대로 작성하였습니다.

 

http 요청 과정을 간단하게 그려보면 아래와 같다.

클라이언트가 웹 서버로 요청을 하면 요청을 받은 웹 서버는 DB에서 정보를 가져오고 그것으로 응답하는 것이다.

 

클라이언트가 웹서버에 요청하는 방식은 4가지 방식이 있다.

 

(1) GET(동사) - 데이터 요청

(2) POST(동사) - 데이터 전송 (http body 필요)

(3) PUT(동사) - 데이터 갱신 (http body 필요)

(4) DELETE(동사) - 데이터 삭제

 

 

 

controller-demo 프로젝트 생성해서 확인해보기

package com.cos.controllerdemo.web;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;

//@Controller // file을 응답하는 컨트롤러. (클라이언트가 브라우저면 .html 파일을)
@RestController // Data를 응답하는 컨트롤러. (클라이언트가 핸드폰이면 data)
public class HttpController {

	// http://localhost:8080/get
	@GetMapping("/get")
	public String get() {
		return "<h1>get요청됨.</h1>";
	}
	
	// http://localhost:8080/post
	@PostMapping("/post")
	public String post() {
		return "post요청됨.";
	}
	
	// http://localhost:8080/put
	@PutMapping("/put")
	public String put() {
		return "put요청됨.";
	}
	
	// http://localhost:8080/delete
	@DeleteMapping("/delete")
	public String delete() {
		return "delete요청됨.";
	}
	
}

그럼 각각의 요청들의 결과를 확인해보자.

  1. GetMapping

주소창에

localhost:8080/get

을 작성해보면 아래와 같이 결과를 확인할 수 있다.

(get만 웹브라우저에서 요청이 가능하고 나머진 불가능하다.)

나머지를 요청했을 경우 아래와 같은 화면이 나온다.

 

나머지 요청들을 확인하기 위해서는 기존에 설치했던 'Postman'을 이용하면 된다.

'Postman'을 사용하여 요청해보면 아래와 같은 화면이 나온다.

Post 요청

 

Put 요청

 

Delete 요청

 

반응형

+ Recent posts