목록전체 글 (36)
dew's CSE Studying
9장 CRUD와 SQL 쿼리 종합9.1 JPA 로깅 설정하기쿼리(query): DB에 정보를 요청하는 구문-INSERT문(생성), SELECT문(조회), UPDATE문(수정), DELETE문(삭제) 로깅(logging): 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것1.application.properties에 코드 추가logging.level.org.hibernate.SQL=DEBUG-로깅 레벨(7단계)TRACE: DEBUG 레벨보다 더 상세한 정보DEBUG: 응용프로그램을 디버깅하는 데 필요한 세부 정보INFO: 응용 프로그램의 순조로운 진행 정보WARN: 잠재적으로 유해한 상황 정보ERROR: 응용 프로그램이 수행할 수 있느느 정도의 오류 정보FATAL: 응용 프로그램이 중단될 만한 심..
6장 게시판 내 페이지 이동하기6.1 링크와 리다이렉트란링크(link): 미리 정해 놓은 요청을 간편히 전송하는 기능-페이지 이동을 위해 사용-HTML의 또는 태그로 작성-클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지를 응답한다 리다이렉트(redirect): 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것 6.2 링크와 리다이렉트를 이용해 페이지 연결하기6.2.1 새 글 작성 링크 만들기index.mustach에 이 링크를 추가해주었다.New Article6.2.2 -> 돌아가기입력페이지의 뷰파일인 new.mustach에 해당 코드를 추가해주었다Back 6.2.3 -> 이동하기 6.2.4 -> 돌아가기ArticleController을 ..
11.1 최소 비용 신장 트리신장 트리신장 트리(spanning tree): 그래프 내의 모든 정점을 포함하는 트리 1.모든 정점들이 연결되어 있어야 하고2.사이클을 포함해서는 안된다=>그래프에 있는 n개의 정점을 정확히 (n-1)개의 간선으로 연결하게 된다 -깊이우선/너비우선 탐색 도중 사용된 간선들만 표시하면 만들 수 있다-그래프의 최소 연결 부분 그래프최소: 간선의 수가 가장 적다(최소 n-1개의 간선)-통신 네트워크 구축에 많이 사용-각 링크의 구축 비용이 같지 않기 때문에 가장 적은 링크만 사용한다고 해서 최소 비용이 얻어지는 것은 아니다 최소 비용 신장 트리최소 비용 신장 트리(MST: minimum spanning tree): 네트워크에 있는 모든 정점들을 가장 적은 수의 간선과 비용으로 ..
Part2 게시판 CRUD 만들기3장 게시판 만들고 새 글 작성하기: Create3.1 폼 데이터란폼 데이터: HTML 요소인 태그에 실려 전송되는 데이터-웹브라우저에서 서버로 데이터를 전송할 때 사용-태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체(DTO: Data Transfer Object)에 담아 받은 후, 최종적으로 데이터베이스에 저장된다 3.2 폼 데이터를 DTO로 받기3.2.1 입력 폼 만들기3.2.2 컨트롤러 만들기3.2.3 폼 데이터 전송하기3.2.4 폼 데이터 받기받는건 @PostMapping()을 사용한다괄호 안에는 받는 url 주소를 넣는다 3.2.5 DTO 만들기3.2.6 폼 데이터를 DTO에 담기3.2.7 입력 폼과 DTO 필드 연결하기DTO와 동일한 이름을 name의 속성값..
10.1 그래프란?그래프의 소개그래프(graph): 객체 사이의 연결 관계를 표현한 수 있는 자료구조 그래프의 역사오일러(Euler)-Konigsberg의 다리 문제 해결 1736 10.2 그래프의 정의와 용어그래프의 정의그래프: 정점(vertex)과 간선(edges)들의 유한집합G=(V,E)V(G): 그래프 G의 정점들의 집합E(G): 그래프 G의 간선들의 집합 정점(=노드): 여러 가지 특성을 가질 수 있는 객체간선(=링크): 이러한 정점들 간의 관계V(G1) = {0, 1, 2, 3}E(G1) = {(0,1), (0,2), (0,3), (1,2)} 무방향 그래프와 방향 그래프무방향 그래프(undirected graph): 간선을 통해서 양방향으로 갈 수 있음 (A,B)=(B,A)방향 그래프(dire..
1장 스프링 부트 시작하기1.1 스프링부트란-스프링 프레임워크를 개선한 것-자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위한 도구개발 환경 설정을 간소화웹 어플리케이션 서버를 내장 1.2 스프링 부트 개발 환경 설정하기 1.3 웹 서비스의 동작 원리 이해하기클라이언트-서버 구조-클라이언트: 서비스를 사용하는 프로그램 또는 컴퓨터-서버: 서비스를 제공하는 프로그램 또는 컴퓨터-클라이언트의 요청에 응답하려면 서버가 실행중이어야 한다 localhost:8080/hello.html의 의미-localhost: 내컴퓨터-8080: 포트번호-helllo.html: 웹브라우저(클라이언트)에서 서버에 요청한 파일(src>main>resources>static 디렉토리에서 기본적으로 파일을 찾는다) 2장 MVC 패턴 ..
9.1 우선순위 큐 추상 데이터 타입우선순위 큐의 소개우선순위 큐의 사용: 시뮬레이션 시스템, 네트워크 트래픽 제어, 운영체제에서의 작업 스케쥴링, 수치 해석적인 계산 등우선순위 큐는 배열, 연결리스트 등 여러 가지 방법으로 구현이 가능한데 우리는 가장 효율적인 히프(heap)로 구현~ 최소 우선순위 큐: 가장 우선순위가 낮은 요소를 먼저 삭제최대 우선순위 큐: 가장 우선순위가 높은 요소를 먼저 삭제 9.2 우선순위 큐의 구현방법배열을 사용하는 방법정렬X배열삽입 O(1) : 그냥 배열 맨 끝에 요소 추가삭제 O(n): 가장 우선순위가 높은 요소를 찾아야 한다. 정렬이 안 되어있으므로 처음부터 끝까지 다 스캔해야 한다 정렬O배열삽입 O(n): 삽입위치를 찾고->이동 시켜서 빈자리 만들고->삽입해야함삭제 O..
8.1 트리의 개념-계층적 자료구조트리의 용어들트리는 한 개 이상의 노드로 이루어진 유한집합이다. 루트-서브트리에서 서브트리는 또다시 루트-서브트리로 나눠질 수 있다.조상노드(ancestor node): 루트 노드에서 임의의 노드까지의 경로를 이루고 있는 노드를후손노드(descendent node): 임의의 노드 하위에 연결된 모든 노드들을 의미한다단말노드(terminal node, leaf node): 자식노드가 없는 노드(차수=0)비단말노드(nonterminal node): 자식노드가 있는 노드 노드의 차수(degree): 어떤 노드가 가지고 있는 자식노드의 개수트리의 차수: 트리가 가지고 있는 노드의 차수 중에서 가장 큰 값레벨(level): 트리의 각 층에 번호를 매기는 것. 루트노드가 1층이다높..
7.1 원형 연결 리스트원형 연결리스트의 소개원형 연결 리스트 : 마지막 노드가 첫 번째 노드를 가리키는 리스트(원래는 NULL이었는데!) 장점: 하나의 노드에서 다른 모든 노드로의 접근이 가능하다(링크만 따라서 쭉쭉 가면 되니까!) = 삽입/삭제가 단순연결리스트보다 용이하다특히 insert_last가 매우 효율적이다. 단순연결리스트에서는 첫 번째 노드부터 쭉쭉 링크 따라서 가야지만 마지막 노드에 도달할 수 있었는데 원형 연결 리스트에서는 head포인터가 마지막을 가리키도록 해주기만 하면 된다. 원형 연결리스트의 정의원칙적으로 헤드포인트만 있으면 된다ListNode *head; insert_first()헤드포인터 head가 마지막 노트를 가리키고 있다는 것에 유의해야한다 insert_last()위 코드에..
6.1 리스트 추상 데이터 타입리스트의 소개L=(item0, item1, ... , item(n-1))리스트는 순서와 위치를 가진다는 점에서 집합과는 다른 개념이다항목, 삭제, 탐색을 해보자그냥 일상적으로 작성하는 투두리스트 같은 거다! 리스트 ADT-객체: n개의 element형으로 구성된 순서 있는 모임-연산: insert(list, pos, item) ::= pos 위치에 item을 추가한다 insert_last(list, item) ::= 맨 끝에 item을 추가한다 insert_first(list, item) ::= 맨 처음에 item을 추가한다 delete(list, pos) ::= pos 위치의 요소를 제거한다 clear(list) ::= 리스트의 모든 요소를 제거..