[스프링 부트 공부 일지] 3. 스프링에서 REST API 개발하기 (1)
·
공부/Spring Boot
HTTP 메서드 GET, DELETE, POST, PUT을 스프링에서 REST-API 방식으로 처리하는 방법을 알아본다. GET, DELETE 메서드 - 두 메서드는 HTTP 요청 메세지에 바디가 없다. - 그러므로 서버에 데이터를 전달 할 때는, URI에 포함하거나 파라미터를 사용하거나 헤더에 포함하여 전송한다. 1. 호텔 정보 조회 API 명세서 - 기본적으로는 호텔 객실 정보를 조회하는 API 이다. - 단순 리소스 조회이므로 GET 메서드를 사용하며, 호텔을 구부할 수있는 고유 아이디 {hotelId}와 객실을 구분하는 {roomNumber}를 사용한다. - 하지만 요청을 보낼 때, 예약 시작일(fromDate)와 예약 종료일(toDate)를 같이 보내면 예약 정보를 포함하여 응답한다. 포함하지 ..
[스프링 부트 공부 일지] 2. 스프링 웹 MVC
·
공부/Spring Boot
HTTP 프로토콜 - HTTP란 서버와 클라이언트 사이의 데이터 전송 프로토콜이다. - 데이터를 요청(Request)하는쪽이 클라이언트, 데이터를 제공하거나 기능을 처리(Response)하는 쪽을 서버라고 한다. - 크게 다섯가지의 상태코드를 가진다. 1. 1XX : 임시응답, 현 상태의 정보를 응답하는데 사용 2. 2XX : 응답 성공, 요청 및 처리가 정상적으로 이루어졌다는 의미로 사용 3. 3XX : 클라이언트 요청을 처리하는데 추가적인 작업이 필요하다는 의미(URL 변경 안내 등) 4. 4XX : 클라이언트가 전송한 요청이 에러가 있음을 의미(인가되지 않음, 잘못된 요청 등) 5. 5XX : 서버가 요청을 처리하는 중 에러가 발생했음을 의미 - 비연결성(Connectionless)와 무상태(Sta..
[스프링 부트 공부 일지] 1. 스프링 애플리케이션
·
공부/Spring Boot
스프링 빈(Spring Bean) - 스프링 빈이란 스프링 빈 컨테이너가 관리하는 순수 자바 객체(POJO)를 의미한다. - 그렇다면 여기서 순수 자바 객체란 무엇인가? 순수 자바 객체의 정의는 Getter와 Setter만으로 이루어진 자바 객체를 뜻한다. 하지만 내가 이해한 스프링에서의 순수 자바 객체는, 다른 외부 요소에 영향을 받지 않는 객체지향적으로 설계된 자바 객체라고 이해하였다. - 다시 말하면 그냥 스프링 컨테이너에서 사용하는 객체를 말하는 것이다. 스프링 애플리케이션 시작 과정 1. 스프링 빈 컨테이너 구현체(ConfigurableApplicationContext)가 설정파일(Java Config, Xml Config)를 로딩한다. 2. 설정에 정의된 빈 정의를 로딩하고, 지정된 위치에 있..
[스프링 부트 공부 일지] 0. 공부를 시작하며
·
공부/Spring Boot
취업을 위한 포트폴리오 작성을 위해 스프링 부트로 이것 저것 개발하던 중, 여러 기술들을 도입 및 사용 할 때마다 새로 공부하고 또 그것을 내 프로젝트에 적용하면 할 수록 코드는 복잡하고 난해해지는 것을 깨달았다. 문제는 결국, 스프링에 대한 이해도 부족한데 여러 최신기술들을 이것저것 쓰고 싶다는 내 욕심임을 깨닫고 스프링에 대한 기초 지식을 쌓기 위한 여정을 시작하려한다. 내가 공부할 책은 위 사진에서 보이는 "스프링 부트로 개발하는 MSA 컴포넌트" 라는 책이다. 목차를 통하여 책의 내용을 예상했을 때, MSA라는 아키텍처에 대하여 설명하며 스프링 부트에 대한 기능들을 배울 수 있을 것 같아 이 책을 선정하게 되었다.
[Q6] 가장 긴 팰린드롬 부분 문자열
·
코딩테스트/알고리즘
[리트코드 5] Longest Palindrome Substring 가장 긴 팰린드롬 부분 문자열을 출력하라. 잘 모르겠어서, 교재에 적혀있는 풀이방법을 토대로 코딩했다. 내가 이해한 교재의 방식은 짝수 홀수의 슬라이딩 윈도우를 생성하여 앞으로 전진해가며, 그 윈도우의 크기를 확장하여 긴 팰린드롬을 찾는 방법이다. 먼저 팰린드롬인 문자열이 홀수의 자릿수 일수도, 짝수의 자릿수 일수도 있으므로 2개 모두 검사한다. for i in range(len(s)-1): even = s[i:i+2] odd = s[i:i+1] if even == even[::-1]: pass if odd == odd[::-1]: pass 그 다음 문자열을 확장하여 가장 큰 팰린드롬 문자열을 리턴하는 함수를 만든다. def expand..
[Q4] 가장 흔한 단어
·
코딩테스트/알고리즘
[리트코드 819] Most Common Word 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시한다. Q1 팬린드롬과 같이 먼저 문자열 필터링을 해야한다. re 라이브러리를 사용하여 문자열만 필터링 한 후, 대소문자 구분을 하지않기 위해 소문자로 변경하여 공백을 기준으로 리스트화 한다. import re def mostCommonWord(self, paragraph: str, banned: List[str]) -> str: paragraph = re.sub('[^a-zA-Z]', ' ', paragraph).lower().split() 여기서 금지된 단어를 제외 해야한다. paragraph = [string for stri..