분류 전체보기320 3)HttpServletRequest,HttpServletResponse Host~ Content-Type 부분이 헤더정보 HttpServeletRequest 객체는 http요청메시지를 편리하게 읽어들이는 기능에다가 부가기능을 제공한다. HttpServletRequest - 기본 사용법 http요청메시지 첫번째 라인에 나오는 정보들, HttpServletRequest객체를 이용하여 가져오기 @WebServlet(name = "requestHeaderServlet",urlPatterns = "/request-header") public class RequestHeaderServlet extends HttpServlet { //헤더정보관련해서 공부용 서블릿 @Override protected void service(HttpServletRequest request, HttpServ.. 인프런/스프링 MVC 1편 2023. 1. 15. 2)서블릿,서블릿컨테이너 일반적으로 Jar지만 JSP공부를 하기위해 이 프로젝트는 War를 선택한다. generate해서 프로젝트 파일받아서 인텔리제이로 열어주고 plugin에서 롬복이 깔려있는지 체크하고 , build시 실행이 gradle로 되는것을 인텔리제이로 바꿔주고, 어노테이션 처리가 잘되게끔 체크해줘야한다. 서블릿을 등록하고 사용해보자. 스프링 부트 서블릿 환경 구성 @ServletComponentScan //서블릿 자동등록 어노테이션, 자동빈등록에 쓰는 @ComponentScan과 같이 , 현재 패키지이하를 모두 뒤져서 서블릿을 찾아, 등록시켜준다. @SpringBootApplication public class ServletApplication { public static void main(String[] args).. 인프런/스프링 MVC 1편 2023. 1. 13. 1)웹서버,웹 어플리케이션 서버,웹 시스템 구성,서블릿,멀티스레드,서버사이드 렌더링,서버 사이드 렌더링 HTTP란? 클라이언트에서 서버로, 서버에서 클라이언트로 데이터를 전송할때 http라는 프로토콜기반으로 동작한다. 그래서 대부분의 데이터는 http기반으로 주고 받는다. 웹 서버(Web Server) 정적 리소스 => 정적 html,css,js,이미지,영상과 같은것들 http 요청이 오면 , 정적 리소스 같은 html데이터를 응답해주는 서버 웹 어플리케이션 서버(WAS - Web Application Server) 웹서버는 정적으로 보여주기때문에 , 특정 사용자마다 다른것을 보여주거나 그런걸 할 수없다. 하지만 웹어플리케이션 서버(was)는 프로그램 코드를 실행해서 어플리케이션 로직을 수행하기 때문에 사용자에 따라서 다른걸 보여줄 수 있다. 웹서버는 정적리소스를 웹 어플리케이션서버(was)는 어플리케이션.. 인프런/스프링 MVC 1편 2023. 1. 13. 1)프로젝트생성,설정, 테스트 https://start.spring.io/ 롬복설치 시 주의사항 View 환경설정타임리프는 라이브러리 설치만하면 스프링부트가 알아서 환경설정 다 해준다. 타임리프 동작확인하기 HelloController@Controllerpublic class HelloController { @GetMapping("hello") //@GetMapping은 @RequestMapping(method = RequestMethod.GET)라는 어노테이션을 포함하고있다, hello라는 request가 들어오면 아래 메소드실행 public String hello(Model model) { //모델이라는것에 데이터를 실어서 뷰에 넘길수있다. model.addAttribute("data","hello!!").. 인프런/실전! 스프링부트와 JPA활용1 2023. 1. 12. h2) h2 데이터베이스 설정 초기화하기, 시작하기 이미 h2를 사용했던적이 있는데 다 지우고 다시 설정하고 싶다면, db파일을 삭제해주고 h2설정을 초기화해줘야한다. C:\Users\사용자이름의 위치로 가서 다음과 같은 databasefile을 찾아 삭제한다. 같은위치에서 저 이름의 서버설정 파일을 메모장으로 열고 안의 내용을 #H2 Server Properties #Fri Jun 22 19:02:35 IST 2018 0=Generic JNDI Data Source|javax.naming.InitialContext|java\:comp/env/jdbc/Test|sa 1=Generic Teradata|com.teradata.jdbc.TeraDriver|jdbc\:teradata\://whomooz/| 10=Generic DB2|com.ibm.db2.jcc... 데이터베이스/h2 2023. 1. 12. 끝)bean 생명주기 콜백 3가지방법,빈 스코프,웹 스코프,스코프와 프록시 인터페이스 InitializingBean, DisposableBean 방법 NetworkClient 수정 public class NetworkClient implements InitializingBean, DisposableBean { //InitializingBean 구현 -> 초기화 콜백관련 DisposableBean 소멸 콜백관련 private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); } public void setUrl(String url) { this.url = url; } //서비스 시작시 호출 public void connect() { System.out.println("connect : .. 인프런/스프링핵심원리(기본) 2023. 1. 11. [Java] 플로이드 워셜 (Floyd-Warshall) 알고리즘 [미완] 플로이드 워셜 1. 음수가중치가 있어도 된다. 하지만 음수 사이클이 존재하면 안된다. 2. 다익스트라 알고리즘은 "어떤하나의 정점"에서 부터 다른 모든 정점까지의 최소비용을 구하는 알고리즘이지만 플로이드 워셜은 "다른모든정점"에서 부터 "다른 모든정점"까지의 최소비용을 구할 수 있다. 3. 인접 행렬을 사용한다. (모든 정점에서 부터 다른 모든정점까지의 최소비용을 저장한다) 4. 시간복잡도는 O(v^3)이다. v는 정점 "다른모든정점"에서 부터 "다른 모든정점"까지의 최소비용 정보가 필요할때 사용하자. 플로이드 워셜 코드 + 예제 (백준 11404) public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader.. 자바/알고리즘 2023. 1. 10. 백준/11404 플로이드 / (최단경로찾기) 플로이드 와샬,다익스트라 플로이드 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 48443 20032 14176 41.698% 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타.. 자바/알고리즘 문제 풀이 2023. 1. 10. [Java] 벨만-포드 알고리즘 (Bellman-Ford) [미완] 그래프 최단거리를 구하는 알고리즘 1. 다익스트라 2. 벨만 포드 3. 플로이드 와샬 벨만 포드 알고리즘은 다익스트라 알고리즘처럼 그래프에서 한 노드에서 다른 모든 노드까지 가는 최소비용을 구할 수 있는 알고리즘이다. 다익스트라와의 차이점은 음수 가중치가 존재하는 경우에도 적용 할 수 있다. 벨만 포드 알고리즘의 시간복잡도는 O(VE)이다. (V: 정점, E: 간선) 다익스트라에서 시간복잡도는 O(VlogE)이므로 다익스트라가 더 빠르다. 다익스트라 알고리즘의 한계 다익스트라 알고리즘은 그리디알고리즘 + 다이나믹 프로그래밍이 합쳐진 알고리즘이다. 그리디 알고리즘 한계점 때문에 다익트스라 알고리즘은 음수 가중치를 가질 수 없다. 위 그림에서 1번 -> 3번 이동할때 최소비용을 구하게하면 다익스트라는 1->.. 자바/알고리즘 2023. 1. 8. ★★★ 백준/13549 숨바꼭질3 / bfs, 다익스트라 알고리즘 숨바꼭질 3 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 59673 17254 11099 25.327% 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다... 자바/알고리즘 문제 풀이 2023. 1. 3. 백준/1504 특정한 최단 경로/ 다익스트라 알고리즘 특정한 최단 경로 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 59864 15172 10258 24.557% 문제 방향성이 없는 그래프가 주어진다. 세준이는 1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다. 또한 세준이는 두 가지 조건을 만족하면서 이동하는 특정한 최단 경로를 구하고 싶은데, 그것은 바로 임의로 주어진 두 정점은 반드시 통과해야 한다는 것이다. 세준이는 한번 이동했던 정점은 물론, 한번 이동했던 간선도 다시 이동할 수 있다. 하지만 반드시 최단 경로로 이동해야 한다는 사실에 주의하라. 1번 정점에서 N번 정점으로 이동할 때, 주어진 두 정점을 반드시 거치면서 최단 경로로 이동하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어.. 자바/알고리즘 문제 풀이 2023. 1. 3. [Java] 다익스트라 알고리즘(Dijkstra Algorithm) + 예제 다익스트라 알고리즘 V = vertext(정점) , E = edge(간선) , adjNode = adjacentNode(인접노드) - 최단경로를 구하는 알고리즘 - 하나의 정점을 기준으로 다른 정점까지 가는 최단거리를 구한다. (출발지에서 다른 정점까지의 최단거리들을 구한다) - 음수 가중치가 없어야한다 - 인접 행렬로 표현된 그래프로 다익스트라 알고리즘을 구현시 시간 복잡도 O(V^2) - 우선순위 큐+리스트를 사용해서 다익스트라 알고리즘 구현시 시간복잡도 ( ElogV) 까지 낮출수 있다고 한다. - 탐욕법(그리디 알고리즘) 과 동적 계획법(다이나믹 프로그래밍)을 사용한다. -> 방문하지 않은 노드 중에서 가장 비용이 적은 노드를 선택한다 (그리디 알고리즘) -> 해당 노드로부터 갈 수 있는 노드들의.. 자바/알고리즘 2023. 1. 3. 이전 1 ··· 12 13 14 15 16 17 18 ··· 27 다음