이제 API에 대해 알아보도록 하자. API란 Application Programing Interface로, 쉽게 말해 어떠한 응용프로그램에서 데이터를 주고받기 위한 방법을 의미한다. HelloController 파일에 위의 코드를 추가로 작성해준다. @ResponseBody 는 http 프로토콜의 body 를 의미하고, 위의 코드는 이 body 에다가 return 하는 내용을 직접 넣어주겠다는 의미이다. 템플릿 엔진과의 차이점은 View 같은 것이 있는 것이 아니라 그냥 문자열 그대로가 return 된다는 것이다. localhost:8080/hello-string?name=spring! 을 입력해주면 위와 같은 창이 뜨고, 페이지 소스를 확인해보면 HTML 이 아닌 return 해준 문자열 그대로가 r..
이제 MVC 와 템플릿 엔진에 대해 좀 더 자세히 알아보도록 하자!! MVC 는 Model, View, Controller 를 나타낸다. 이전에 만들었던 HelloController 에 내용을 좀 더 추가해보도록 하자. Hello Controller에 들어가서 위와 같은 코드를 추가해주자. 그 후 main -> resources -> templates 에 가서 hello-template.html 이라는 파일을 하나 만들어준다. hello-template.html 파일에 위와 같은 코드를 추가해준 뒤 서버를 한번 돌려보도록 하자. (참고로 사이에 있는 hello! empty 라는 문장은 absolute path를 그대로 url 에 치면 나오는 내용으로 꼭 필요한 내용은 아니다.) localhost:8080..
이제 정적 컨텐츠를 한번 만들어보자. 정적 컨텐츠는 변화가 없는 데이터로 어떤 접속자에게든 동일한 모습을 반환한다. 서버가 html 파일 그대로를 내려주는 것을 예로 들 수 있다. main -> resources -> static 에 가서 hello-static.html 파일을 하나 만들어주자. 그 후 hello-static.html 파일에 위와 같은 코드를 작성해주자. 다 작성하였으면 서버를 실행시키고 localhost:8080/hello-static.html 으로 들어가면 위와 같은 화면이 뜨는 것을 확인할 수 있다. 위의 그림을 통해 정적 컨텐츠가 화면에 띄워지는 과정을 한번 알아보자. 먼저 웹 브라우저에서 localhost:8080/hello-static.html 을 입력하면 내장되어있는 톰캣 서..
문제 수열 S가 어떤 수 Sk를 기준으로 S1 Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30, 25, 20}과 {10, 20, 30, 40}, {50, 40, 25, 10} 은 바이토닉 수열이지만, {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30} 은 바이토닉 수열이 아니다. 수열 A가 주어졌을 때, 그 수열의 부분 수열 중 바이토닉 수열이면서 가장 긴 수열의 길이를 구하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어..
이제 IntelliJ 에서 서버를 중단하고, cmd 창에서 빌드한 후 실행하는 법을 알아보자. cmd 창을 열고 현재 작업중인 프로젝트로 cd를 이용하여 접근한 후, 윈도우는 gradlew.bat build 를 쳐보면(mac 은 gradlew build) 위와 같이 BUILD SUCCESSFUL 이라는 문구가 뜨게 된다. 그 후 cd build 를 입력하여 build 로 들어가서 dir 명령어를 입력해보면 위와 같이 build 폴더에 담겨있는 여러 폴더를 확인할 수 있다. 이 폴더 중 cd libs 를 입력하여 libs 로 폴더로 들어가보자. 그럼 위와 같은 내용이 뜨는 것을 확인할 수 있다. 그 후 java -jar (SNAPSHOT.jar로 끝나는 문장) 을 쳐주면 (위에서는 java -jar hel..
현재는 localhost:8080 을 치면 에러페이지만 나오고 있다. 이제 한번 다른 페이지를 띄워보자!! 위와 같이 main -> java -> resources -> static 폴더에 index.html 이라는 파일을 하나 만들어주자. 그 후, index.html 에 위의 간단한 html 코드를 쳐보자. 코드를 친 후 서버를 다시 재시작 해보면 위와 같은 새 창이 보이는 것을 확인할 수 있다. Spring Boot 는 Welcome Page 기능을 제공한다. static 안에 있는 index.html 파일을 가장 먼저 찾아서 이를 Welcome Page로 띄우게 된다. 우리가 추가했던 Thymeleaf 는 템플릿 엔진의 일종으로, 템플릿 엔진은 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합..
문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net import sys N=int(sys.std..
문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 순서대로 테이블 위에 놓여 있고, 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때, 효주를 도와 가장 많은 양의 포도주를 마실 수 있도록 하는 프로그램을 작성하시오. 예를 들어 ..
문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net import sys N=int(sys.stdin.readline()) arr=[[0 for _ in range(10)]for _ in range(N+1)] result=0 for x in range(1,10): arr[1][x]=1 for x in range(2,N+1): for y in range..
Requirements ● Java 11 설치 https://crazykim2.tistory.com/478 [JAVA] Window10의 JAVA SE 11 설치하기 안녕하세요 포스팅이 늦은 것 같지만 이번에 윈도우를 포맷하면서 자바를 다시 설치하게 되었습니다 자바 개발을 처음하거나 자바를 설치한지 오래되어서 기억이 안 나는 분들을 위해 자바 설 crazykim2.tistory.com ● IntelliJ 또는 Eclipse 설치 (IntelliJ 추천!!) 프로젝트를 생성하기 위해 다음의 링크로 가보자. 두가지의 Project 가 있는데 요즘은 모두 Gradle 을 사용하는 추세이다. Gradle Project 를 선택해주자. Language 는 Java 를 선택해준다. 버전을 선택해야 하는데 SNAPS..