책 공부
-
그림으로 개념을 이해하는 알고리즘: 04. 퀵 정렬책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 1. 분할 정복 문제 해결 방법 중에서 가장 유명한 재귀적 기술인 분할 정복 dividid and conquer 전략! 분할 정복 전략은 문제에 바로 적용할 수 있는 단순한 알고리즘이 아니다. 문제를 풀기 위한 방법론에 가깝다. 문제를 분할 정복 전략으로 풀기 위해서는 다음의 두 가지 단계를 거쳐야 한다. 기본 단계를 해결한다. 이 부분은 가능한 한 간단한 문제이어야만 한다. 문제가 기본 단계가 될 때 까지 나누거나 작게 만든다. 2. 퀵 정렬 선택 정렬보다 훨씬 빠르고, 실제로 자주 사용되는 정렬 알고리즘이다. 예를 들면, C언어에는 qsort라는 함수가 있는데, 바로 퀵 정렬을 구현한 함수이다. 퀵 정렬도 마찬가지로 분할 정복 전략으로 만들어진 알고리즘이다. 배열을 정렬 해본다고 가정해보..
-
그림으로 개념을 이해하는 알고리즘: 02. 선택 정렬책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 선택 정렬 아래와 같은 표가 있을 때, 🎶 PLAY COUNT PADIOHEAD 156 KISORE KUMAR 141 THE BLACK KEYS 35 NETURAL MILK HOTEL 94 BECK 88 THE STROKES 61 WILCO 111 해당 표를 선택 정렬 해본다면? 1. 리스트의 모든 항목을 살펴보고 가장 많이 연주된 가수를 찾아 새로운 리스트에 기록한다. SORTED PLAY COUNT PADIOHEAD 156 2. 그 다음으로 많이 들은 가수를 찾아서 반복한다. SORTED PLAY COUNT PADIOHEAD 156 KISORE KUMAR 141 이런식으로 반복하면 정렬 된 리스트를 얻을 수 있다. SORTED PLAY COUNT PADIOHEAD 156 KISORE KU..
-
그림으로 개념을 이해하는 알고리즘: 03. 재귀책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 1. 재귀 재귀는 풀이를 더 명확하게 만들어 준다. 재귀를 쓴다고 성능이 더 나아지지는 않는다. 사실 반복문이 더 성능이 좋은 경우가 많다. 이에 대해 스택 오버플로우에 있는 레이 케드웰의 말을 인용해보면 다음과 같이 이야기 할 수 있다. " 프로그램에 반복문을 사용하면 프로그램의 성능을 향상시킬 수 있지만, 재귀를 사용하면 프로그래머의 능력을 향상시킬 수 있습니다. 상황에 따라 적절한 방법을 골라 사용하세요. " 대부분의 중요한 알고리즘들이 재귀를 사용하므로, 개념을 잘 이해하는 것이 중요하다. 2. 기본 단계와 재귀 단계 재귀 함수를 만들 때는 언제 재귀를 멈출지 알려줘야 한다. 그래서 모든 재귀 함수는 기본 단계 base case 와 재귀 단계 recursive case 라는 두 부분으..
-
그림으로 개념을 이해하는 알고리즘: 01. 이진 탐색, 빅오 표기법책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖 책 정보 모바일 가이드 01. 이진 탐색 코드로 구현해보기 실행 시간 02. 빅오 표기법 많이 사용하는 빅오 실행 시간의 예 외판원 문제 이진 탐색 입력 : 정렬된 원소 리스트 반환 : null 또는 원소 인덱스 원소 리스트의 중간 값과 찾을 값을 비교하여 중간 값이 더 작으면 왼쪽 구간을 탐색, 중간 값이 더 크면 오른쪽 구간을 탐색 한다. 찾을 값이 나올 때 까지 반복하는 방법! 42개의 원소가 들어있는 리스트에서 7을 찾고자 할 때 맨 처음 원소부터 하나씩 확인한다면 찾는데 7번의 탐색을 하겠지만, 이진 탐색을 사용한다면 4번의 탐색으로 찾을 수 있다. 1. 코드로 구현해보기 public Integer binarySearch(int[] arr, int item) { int low = 0; int..
-
Hello Coding 그림으로 개념을 이해하는 알고리즘 !책 공부/그림으로 개념을 이해하는 알고리즘 2023. 12. 6. 00:01
📖책 정보 알고리즘 공부를 다시 시작하기 위해 제일 쉬워보이는 책을 샀다! 하지만 소스 코드는 파이썬으로 작성되어있기 때문에 직접 구현이 필수인 책이다. 무리가 없을것으로 판단! 강의는 넘 어려웠기 때문에 쉬운 책으로 다시 시작해본다 🙈 책의 인트로에서 인상깊었던 내용 " 자신이 사용하고 있는 라이브러리가 어떤 핵심 아이디어 를 통해 만들어졌는지를 이해하는 것이 중요 " 그 핵심 아이디어가 알고리즘 인 것! 한번쯤은 들어봤던 말 같은데 뭔가 새롭게 느껴졌고 큰 깨달음이 느껴져서 적어본다 😊 화이륑 💪😬👍
-
스프링 부트 핵심 가이드 4주차 : 8장책 공부/스프링 부트 핵심 가이드 2023. 12. 5. 00:01
📖 책 정보 나를 위한 모바일 가이드 8장. Spring Data JPA 활용 JPQL 쿼리 메서드 정렬과 페이징 처리 @Query QueryDSL JPA Auditing 8장 JPQL 쿼리 메서드 정렬과 페이징 처리 @Query QueryDSL JPA Auditing Spring Data JPA에서 제공하는 기능들에 대해 더 알아보고 다양한 활용법에 대해 살펴본다. 그 과정에서 리포지토리 예제를 작성하고 , 리포지토리의 활용법을 테스트 코드를 통해 학습 실습 프로젝트는 새로 생성하지 않고 지난번에 했던 프로젝트에서 진행! spring.io - Spring Data JPA Document 1. JPQL JPA Query Language JPA에서 사용할 수 있는 쿼리를 의미하며, SQL과 문법이 매우 비..
-
스프링 부트 핵심 가이드 3주차 : 6장책 공부/스프링 부트 핵심 가이드 2023. 12. 4. 00:01
📖 책 정보 나를 위한 모바일 가이드 6장 데이터베이스 연동 마리아DB 설치 ORM JPA 하이버네이트 영속성 컨텍스트 데이터베이스 연동 엔티티 설계 리포지토리 인터페이스 설계 DAO 설계 DAO 연동을 위한 컨트롤러와 서비스 설계 6장 마리아DB 설치 ORM JPA 하이버네이트 영속성 컨텍스트 데이터베이스 연동 엔티티 설계 리포지토리 인터페이스 설계 DAO 설계 DAO 연동을 위한 컨트롤러와 서비스 설계 키워드 1. 마리아DB 설치 - 다운로드 아래 사이트에서 다운로드 받으면 된다. 설치는 굉장히 간단한 편! 다운로드 링크 : mariadb.org/download 설치 후 windows terminal에서 편하게 접근하기 위해 환경변수를 설정하고 db접근 계정을 추가/삭제하는 과정을 포스팅 했던 링크를..
-
스프링 부트 핵심 가이드 2주차 : 4~5장책 공부/스프링 부트 핵심 가이드 2023. 12. 2. 00:01
📖 책 정보 나를 위한 모바일 가이드 04장 스프링 부트 애플리케이션 개발하기 1. 프로젝트 생성 2. 메이븐 Maven 3. 그레이들 Gradle 4. MVC 패턴 간략하게 알아보기 5. 웹서버 port 번호 변경하기 05장 API를 작성하는 다양한 방법 1. GET / DELETE API 만들기 2. POST / PUT API 만들기 3. ResponseEntity 활용 4. Swagger : REST API 명세를 문서화 해주는 도구 5. Logback : 로깅 라이브러리 04장 스프링 부트 애플리케이션 개발하기 프로젝트 생성 메이븐 Maven 그레이들 Gradle MVC 패턴 간략하게 알아보기 웹서버 port 번호 변경하기 키워드 spring initializr 인텔리제이 IDEA 얼티밋 Arti..
-
스프링 부트 핵심 가이드 1주차 : 개발 준비 학습책 공부/스프링 부트 핵심 가이드 2023. 12. 2. 00:01
📖 책 정보 날 위한 모바일 가이드 01장 스프링 부트란? 1. 스프링 프레임워크 2. 스프링 vs 스프링 부트 02장 개발에 앞서 알면 좋은 기초 지식 1. 서버 간 통신 2. 스프링 부트의 동작 방식 3. 레이어드 아키텍처 4. 디자인 패턴 5. REST API 01장 스프링 부트란? 스프링 프레임워크 스프링 vs 스프링 부트 키워드 스프링 엔터프라이즈급 개발 스프링 핵심 가치 IoC DI AOP aspect OOP 핵심기능 부가기능 스프링 부트 의존성 관리 Auto Configuration @Component bean @Component 시리즈 어노테이션 대표 5개 내장 WAS 모니터링 1. 스프링 프레임워크 스프링 프레임워크는 자바 기반의 애플리케이션 프레임워크로 , 엔터프라이즈급 애플리케이션을 ..