스프링 웹개발 방식 1. 정적 컨텐츠 : 파일 자체를 웹 브라우저에 전달 2. MVC와 템플릿 엔진 : server에서 html파일을 변환 후 전달 3. API : xml이나 JSON(default)으로 client에게 전달, Server끼리 통신할 때 사용 저번 시간까지 정적 컨텐츠와 MVC와 템플릿 엔진에 대해 알아보았다. 오늘은 API 방식에 대해 알아보고자 한다. 3. API API란 Application Programming Interface의 약자로, 어떤 서버의 특정한 부분에 접속해서 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구이다. Controller에 아래 내용을 추가로 작성한다. @ResponseBody라는 새로운 어노테이션이 등장하는데, 자세한 내용은 htt..
먼저 HTTP통신에 대해 간단히 설명하고 넘어가고자 한다. HTTP HyperText Transfer Protocol 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약). 즉 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조" 라고 보면 된다. 프론트앤드 서버와 클라이언트간의 통신에 사용된다. 또한 백앤드와 프론트앤드 서버간에의 통신에도 사용된다. HTTP는 TCP/IP 기반으로 되어있다. HTTP 기본적으로 request(요청)/response(응답) 구조로 되어있다. 클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조 클라이언트와 서버의 모든 통신이 요청..
스프링 웹개발 방식 1. 정적 컨텐츠 : 파일 자체를 웹 브라우저에 전달 2. MVC와 템플릿 엔진 : server에서 html파일을 변환 후 전달 3. API : xml이나 JSON(default)으로 client에게 전달, Server끼리 통신할 때 사용 저번 시간에 우리는 스프링 웹개발 방식 중 정적 컨텐츠 방식에 대해 알아봤다. 오늘은 MVC와 템플릿 엔진에 대해 알아보고자 한다. 2. MVC와 템플릿 엔진 1. MVC : Model, View, Controller 2. 템플릿 엔진 : 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어. 쉽게 말해 서버에서 동적으로 html을 변환하여 웹 브라우저로 보내주는 역할을 한다. 요즘에는 Controller와 V..
스프링 웹개발 방식 1. 정적 컨텐츠 : 파일 자체를 웹 브라우저에 전달 2. MVC와 템플릿 엔진 : server에서 html파일을 변환 후 전달 3. API : xml이나 JSON(default)으로 client에게 전달, Server끼리 통신할 때 사용 위에 3가지 방법 중 먼저 정적 컨텐츠에 대해 알아보고자 한다. 1. 정적 컨텐츠 스프링 부트는 static을 찾아 정적컨텐츠 제공 기능을 자동 지원한다. src > main > resources > static 폴더 안에 hello-static 파일을 생성한 후 아래와 같이 작성했다. 별도로 컨트롤러에 매핑하는 작업 없이 그대로 서버를 동작시켜 localhost:8080/hello-static.html을 요청해보았다. 위와 같은 화면이 결과로 출력..
1. Welcome Page 만들기 1.1 Welcome Page 생성 src > main > resources > static 폴더 안에 index.html를 생성. 위와 같이 코드를 작성한 후 서버를 실행하면 브라우저 화면이 아래와 같이 실행된다. Spring boot의 경우 src > main > resources > static 폴더 안에서 index.html을 먼저 찾고, 못찾을 경우 index 템플릿을 찾게 된다. 위와 같이 웰컴페이지를 만들어봤지만 이는 정적페이지에 불과하다. 동적페이지를 만들기 위해 나는 thymeleaf템플릿 엔진을 사용할 것이다. thymeleaf 공식 사이트: https://www.thymeleaf.org/ 스프링 공식 튜토리얼: https://spring.io/gui..
Spring boot 핵심 라이브러리 정리 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat : 톰캣(웹서버) spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View) spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅 spring-boot spring-core spring-boot-starter-logging logback,slf4j 테스트 라이브러리 spring-boot-starter-test junit : 테스트 프레임워크 mockito : 목 라이브러리 assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러..
Spring boot 프로젝트를 만들 때, intellij혹은 eclipse에서 새롭게 프로젝트를 생성해도 되지만 간편하게 만들 수 있는 방법이 있다. https://start.spring.io/ 바로 위에 사이트에 접속하는 것! 나는 김영한님의 강의를 보며 아래와 같이 만들어봤다. 영상이 몇년 전 영상이라 UI가 달라진 부분이 있었는데 확인해보니 아래와 같이 만들면 된다고 한다. GENERATE를 클릭하면 알집 파일이 다운로드 된다. 해당 알집을 사용하고자 하는 폴더에 압축을 풀어준 후 Intellij로 열어주면 처음에 프로젝트 구성이 아래와 같이 되어있다. .idea : intellij 설정파일 폴더 gradle : gradle 관련 폴더 src - main - java : 실제 package와 소스..
1. pom. xml pom.xml이란 Maven의 빌드 정보를 담고 있는 파일이다. pom(project object model)을 설정하는 부분으로 프로젝트 내 블디 옵션을 설정하는 부분이다. 다른 프로젝트에도 복사 붙여넣기를 하면 되기 때문에 범용성과 협업할 때 버전관리에 용의하다. 프로젝트의 세부 메타데이터 정보를 포함한다. 1-1. pom.xml 태그의 설명과 분석 4.0.0 com.mycompany.app my-app 1 : Maven의 XML 네임스페이스를 지정 : Maven의 model Version : 그룹 ID태그 : 아티팩트ID 태그 : 버전명 태그 패키징 형식을 지정하는 태그 : 프로젝트의 이름 : Maven의 url : 프로젝트 관련 속성 : pom.xml의 상속에 관련된 태그 :..
문제 설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항 0
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요. 제한사항 array의 길이는 홀수입니다. 0