본문 바로가기

전체 글208

2_Spring Boot 정적 컨텐츠 / MVC / API 요약[정적 컨텐츠 = 그냥 파일을 그대로 보여준다.]HTML 파일을 그대로 웹에 뿌려주는 것이다.정적 컨텐츠는 src/main/resources/static 하위에 넣는다. 1) 사용자가 localhost:8080/hello-static.html 을 요청하면 내장 톰켓 서버가 요청을 받는다. 2) 내장 톰켓 서버는 "hello-static.html 요청이 왔대!" 하고 던지고 스프링 부트는 요청을 받는다.3) 스프링 부트는 먼저 hello-static 관련 컨트롤러를 찾아본다.4) 만약 없으면 resources/static/hello-static.html 을 찾는다. -> 있으니까 hello-static.html을 사용자에게 반환해준다. [MVC와 템플릿 엔진 = View와 Model, Controlle.. 2025. 3. 23.
1_Spring Boot 프로젝트 환경 설정 학습 목표1. Intellij 에서 Spring Boot 프로젝트 환경을 한다. 프로젝트 환경 설정 방법1️⃣ 스프링 부트는 복잡한 환경 설정을 할 필요 없이 아래 사이트에서 손쉽게 프로젝트 생성이 가능하다.https://start.spring.ioProject: Gradle - Groovy ProjectSpring Boot: 3.x.x (SNAPSHOT, M1, M2, M3가 아닌 안정적인 버전 선택)Language: JavaPackaging: JarJava: 17Project MetadatagroupId: helloartifactId: hello-springDependencies: Spring Web, Thymeleaf  2️⃣ 다 지정했으면 하단 GENERATE 버튼을 눌러 생성하여 다운로드한다. .. 2025. 3. 23.
[프로그래머스] 기능개발 (Java) 문제 정보  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 교훈점1. [5, 10, 1, 1, 20, 1] 에서 모든 배열의 원소값을 [0] 인덱스의 값 만큼 빼서 [0, 5, -4, -4, 15, -4] 로 만들고 싶을 때 아래와 같이 코드를 작성하면 안된다.for(int i=0; i왜냐하면 deploy[0]의 값이 0으로 바뀌어서 i가 1부터는 deploy[1] -= 0; 의 꼴이 되어버린다. 이런 경우 아래 코드와 같이 deploy[0] 을 다른 변수에 저장해두고 사용해야 한다.int minus = deploy[0];for(int i=0; i  1. 배열로 풀이 O(n^2)1. 배포까지의 걸리는 .. 2025. 3. 22.
[Stack 응용] Monotonic Stack 두 줄 요약각 element를 오름 차순, 내림 차순으로 유지하는 알고리즘 기법 특정 기점에서 최초로 커지거나/작아지는 시점을 구하고 싶을 때 사용 배열에서 다음보다(순서 중요) 큰 element나 작은 element를 찾는 문제를 O(n) 이라는 시간에 효율적으로 해결할 수 있다. 즉,1) 배열의 순서가 중요하고 (그 순서를 기점으로 계산해야 하기 때문에)2) 어떤 기점에서 크거나 작은 요소를 찾아야 하는 문제3) O(n^2)으로 해결할 수 없고, O(n)으로 해결해야 하는 경우 1) && 2) && 3) 의 해당하는 경우 Monotonic Stack을 사용하면 된다.온도 문제로 생각해보는 Monotonic Stack의 필요성각 일마다 온도를 순서대로 나타내어 temperatures 배열에 아래와 같이.. 2025. 3. 22.
해시 테이블(Hash Table)과 해시 충돌(Hash Collision) 쉬운 개념 정리 Array VS Hash TablePizza50$Coke15$Tea3$Burger20$ Java에서 위 메뉴를 배열로 저장하고 Coke의 가격을 찾으려면 아래와 같이 O(N)의 순회를 하며 찾아야 한다.String[][] menu = { {"Pizza", "50"}, {"Coke", "15"}, {"Tea", "3"}, {"Burger", "20"}};// 출력 예시for (String[] item : menu) { if(item[0].equals("Tea")) { System.out.println(item[0] + " : " + item[1] + "$"); }} 이를 좀 더 빠르게 찾을 수 없을까?이럴 때 Hash Table을 사용하면 된다. 이 경우 O(1)으로 순회.. 2025. 3. 21.