분류 전체보기 (36) 썸네일형 리스트형 [알고리즘] 선택 정렬 선택 정렬 : 각 루프마다 최대 원소를 찾고, 최대 원소와 맨 오른쪽 원소를 교환 -> 맨 오른쪽 원소를 제외한다. 하나의 원소만 남을 때까지 위의 루프를 반복. void selectionSort(int A[], int n) { int big;// 최댓값 인덱스 int temp; for (int i = n - 1; i > 0; i--) { big = i; for (int j = 1; j A[big]) { big = j; } } temp = A[i]; A[i] = A[big]; A[big] = temp; } for (int i = 0; i < n; i++) { printf("%d ", A[i]); } } [알고리즘] 버블 정렬 버블 정렬 : 인접한 두 개의 원소를 비교하여 자리 교환하는 방식. 첫 번째 원소부터 마지막 원소까지 반복하면 가장 큰 원소가 마지막 자리에 온다. 시간복잡도 비교 횟수 최상, 평균, 최악 모두 일정. n-1, n-2, … , 2, 1 번 = n(n-1)/2 교환 횟수 입력 자료가 역순으로 정렬되어 있는 최악의 경우, 한 번 교환하기 위하여 3번의 이동(SWAP 함수의 작업)이 필요하므로 (비교 횟수 * 3) 번 = 3n(n-1)/2 입력 자료가 이미 정렬되어 있는 최상의 경우, 자료의 이동이 발생하지 않는다. O(n^2) C언어 구현 void bubbleSort(int A[], int n) { int temp; for (int i = n - 1; i >= 1; i--) { for (int j = 0; .. [Spring boot] 9일차_CRUD와 SQL 쿼리 종합 쿼리 : DB에 정보를 요청하는 구문.(INSERT,SELECT,UPDATE,DELETE) 로깅 : 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것 로깅 레벨 TRACE(레벨1) : DEBUG 레벨보다 더 상세한 정보 DEBUG(레벨2) : 응용 프로그램을 디버깅하는 데 필요한 세부 정보 INFO(레벨3) : 응용 프로그램의 순조로운 진행 정보 WARNING(레벨4) : 잠재적으로 유해한 상황 정보 ERROR(레벨5) : 응용 프로그램이 수행할 수 있는 정도의 오류 정보 FATAL(레벨6) : 응용 프로그램이 중단될 만한 심각한 오류 정보 OFF(레벨7) : 로깅 기능 해제 (INFO로 설정하면 레벨3~7의 모든 로그 기록됨) # JPA 로깅 설정 # 디버그 레벨로 쿼리 출력 logging.l.. [Spring boot] 8일차_게시글 삭제 Delete 글 삭제 순서 1) 클라이언트가 HTTP 메서드로 특정 게시글 삭제 요청 2) 삭제 요청을 받은 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제(기존 데이터가 있는 경우에만 수행) 3) 삭제가 완료됐다면 클라이언트를 결과 페이지로 리다이렉트 + 클라이언트에 삭제 완료 메시지 띄우기 : RedirectAttributes의 addFlashAttribute() 사용.->일회성 데이터 등록 [Spring boot] 7일차_게시글 수정 Update 데이터 수정 단계 1. 생성. 기존 데이터 불러오기 2. 데이터를 수정해 DB에 반영한 후, 결과를 볼 수 있게 로 리다이렉트하기 1. 생성&기존 데이터 로드 방법. 에서 Edit 버튼 클릭 시, 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옴. 컨트롤러는 이 데이터를 뷰에서 사용할 수 있게 모델에 등록. 모델에 등록된 데이터는 에서 보여줌. 2. 데이터 수정. DB에 반영. 로 리다이렉트 방법. 폼 데이터를 DTO에 담아 컨트롤러에서 받음. DTO->엔티티 DB에서 기존 데이터를 수정 데이터로 갱신 수정 데이터를 로 리다이렉트 [Spring boot] 6일차_게시판 내 페이지 이동하기 링크 미리 정해 놓은 요청을 간편히 전송하는 기능. 보통 페이지 이동을 위해 사용 링크를 걸 대상 리다이렉트 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시. - 분리된 기능을 하나의 연속적인 흐름으로 연결 가능 - 리다이렉트를 받은 클라이언트는 해당 주소로 다시 요청을 보내고, 서버는 이에 대한 결과를 응답. return "redirect:URI_주소"; 태그 (href 속성) 태그 : 문서를 링크시키기 위해 사용하는 태그 href 속성 : hypertext reference약자, 연결할 주소를 지정하는 속성 페이지 연결 * 에서 로 이동 * 에서 로 이동 * 에서 로 이동 * 에서 로 이동 [Spring boot] 5일차_게시글 읽기: Read 데이터 조회 과정 ① 사용자가 데이터를 조회해 달라고 웹 페이지에서 URL 요청을 보냄 ② 서버의 컨트롤러가 요청을 받아 원하는 데이터 정보를 리파지터리에 전달 ③ 리파지터리는 정보를 가지고 DB에 데이터 조회를 요청 ④ DB는 해당 데이터를 찾아 엔티티로 반환 ⑤ 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달 ⑥ 최종 뷰 페이지 출력 @PathVariable : URL 요청으로 들어온 전달값을 컨트롤러의 매개변수로 가져오는 어노테이션 findById() : JPA의 CrudRepository가 제공하는 메서드, 특정 엔티티의 id 값을 기준으로 데이터를 찾아 Optional 타입으로 반환 findAll() : JPA의 CrudRepository가 제공하는 메서드, 특정 엔티티를 모두 가져와 Itern.. [Spring boot] 4일차_롬복과 리팩터링 롬복 - 코드 반복 최소화 - 로깅 기능 지원 (로깅 : 프로그램의 수행 과정을 기록으로 남기는 것) 리팩터링 -코드의 기능에는 변함이 없이 코드의 구조, 성능을 개선하는 작업 compileOnly, annotationProcessor 작성 -> 롬복 관련 라이브러리 다운 DTO 리팩터링 dto/ArticleForm.java에서 생성자 전체 삭제, @AllArgsConstructor 어노테이션 추가 toString 메서드 전체 삭제, @ToString 어노테이션 추가 엔티티 리팩터링 Article()생성자, toString() 메서드 삭제, @AllArgsConstructor, @ToString 어노테이션 추가 컨트롤러에 로그 남기기 println()문으로 데이터를 확인하는 부분을 로깅으로 대체. Art.. 이전 1 2 3 4 5 다음