본문 바로가기

독서51

[스프링 부트 핵심 가이드] Chapter 3. 개발 환경 구성 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 3. 개발 환경 구성 자바 JDK 설치 (Java Development Kit) 자바 개발을 위해 설치가 필요한 키트다 OpenJDK 를 검색해서 JDK를 설치한다 https://jdk.java.net/java-se-ri/11-MR2 - Java 11 버전이지만, 왼쪽 창에 다른 버전들도 다운로드 받을 수 있다 환경 설정 윈도우 [제어판] - [시스템 및 보안] - [시스템]에 들어간다 [고급 시스템 설정]을 들어간다 [고급 시스템 설정]에서 [환경 변수] 버튼을 클릭한다 [시스템 변수]에서 [새로 만들기] 버튼을 클릭한다 JDK가 설치된 위치를 찾아 bin 경로를 넣어 준다 개인적으로 bin 경로를 넣지 않아도, 작동하고 있다 인텔리제.. 2023. 8. 28.
[스프링 부트 핵심 가이드] Chapter 2. 개발에 앞서 알면 좋은 기초 지식 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 2. 개발에 앞서 알면 좋은 기초 지식 2.1 서버 간 통신 어플리케이션을 업데이트 또는 유지보수 할 때에, 블로그, 카페, 메일 등의 기능을 통합을 하면, 어플리케이션 자체를 닫아야 한다 즉 업데이트 또는 유지보수 할 때에는 유저들이 어플리케이션 자체를 못 사용한다는 것 MSA, Microservice Architecture를 통해 위의 상황을 해결했다 블로그, 카페, 메일 같은 기능들을 기능별로 따로 프로젝트를 만들어서 개발을 하는 것이다 그렇게 되면, 블로그 기능을 업데이트 또는 유지보수 할 때에 다른 기능들은 사용할 수 있게 된다 MSA를 사용하여 어플리케이션을 개발할 때에는 서버 간 통신을 해야 한다 그렇게 나온 프로토콜이 HT.. 2023. 8. 27.
[스프링 부트 핵심 가이드] Chapter 1. 스프링 부트란? 스프링 부트 핵심 가이드 Chapter 1. 스프링 부트란? 1.1 스프링 프레임워크 📌스프링 프레임워크 (Spring Framework)는 자바 (Java) 기반의 엔터프라이즈급 어플리케이션 프레임워크다 자바로 어플리케이션 개발을 할 때 필요한 기능들을 제공하고, 쉽게 사용할 수 있도록 도와주는 도구다 엔터프라이즈급 개발이란, 대규모 데이터를 처리하는 환경에서 개발을 하는 것이다 (예. 카카오 같은 대기업에서 데이터를 처리할 때) ✔️ 제어 역전(IoC : Inversion of Control) 일반적으로 자바 개발을 할 때에는 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다 @RestController public class NoDIController{ /.. 2023. 8. 27.
39. 데이터 베이스 [조인] 39. 데이터 베이스 [조인] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 조인 (Join) 조인은 두 개 이상의 테이블을 합쳐서, 하나의 결과물을 만드는 것이다 MySQL에서는 JOIN을 사용한다 내부 조인 (Inner Join) 교집합 : A와 B에 같은 데이터들을 가지고 온다 SELECT * FROM Table A as A INNER JOIN Table B as B ON A.key = B.key 왼쪽 조인(Left Outer Join) A 테이블의 행이 모두 표출되는 것이다 (A테이블 = 왼쪽 테이블) SELECT * FROM Table A as A LEFT JOIN Table B as B ON A.key = B.key 오른쪽 조인 (Right Outer Join) B 테이블의 행이 모두 .. 2023. 3. 24.
38. 데이터 베이스 [인덱스] 38. 데이터 베이스 [인덱스] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 인덱스 인덱스는 데이터의 위치를 빠르게 찾게 해 주는 자료구조다 데이터의 위치를 빠르게 검색하면, Update, Delete의 성능도 향상될 수 있다 인덱스는, 책의 목차 페이지와 비슷하다 원하는 정보의 위치를 목차에 넣어두면, 빠르게 페이지를 찾을 수 있다 반대로 인덱스를 사용하지 않으면, 데이터 하나하나 모두 탐색을 해야 한다 즉 테이블을 조회하는 속도와 성능을 증가시킨다 시스템의 부하를 줄일 수 있다 단점 인덱스 관리를 위해 약 10%의 저장공간이 필요하다 인덱스 관리를 위해 추가 작업이 필요하다 인덱스를 잘못 사용하면, 오히려 성능이 저하된다 인덱스는 균형잡힌 B-Tree 기반으로 구축이 되어 있다 자식 노드가 .. 2023. 3. 24.
37. 데이터 베이스 [데이터 베이스의 종류] 37. 데이터 베이스 [데이터 베이스의 종류] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 관계형 데이터 베이스 RDBMS (Relational Database Management System) 라고도 한다 대표적으로 MySQL, postgreSQL 이 있다 행과 열을 가지고 테이블 형태로 데이터를 저장한다 SQL 언어를 사용하여 테이블을 조작한다 MySQL 가장 많이 사용되는 데이터베이스다 테이블과 테이블 간의 조인을 빠르게 한다 최대 64개의 인덱스를 제공한다 대용량 데이터베이스를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공한다 MySQL 스토리지 엔진 아키텍쳐 다양한 스토리지 엔진을 고를 수 있다 쿼리 캐시가 있어, 같은 쿼리를 다시 사용했을 때에, 빠르게 결과.. 2023. 3. 23.
36. 데이터 베이스 [트랜잭션과 무결성] 36. 데이터 베이스 [트갠잭션과 무결성] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 트랜잭션 (Transaction) 하나의 논리적 기능을 수행하기 위한 작업의 단위 쿼리를 통해 데이터 베이스를 접근한다 / 여러 개의 쿼리들을 하나로 묶는 단위가 트랜잭션이다 Commit 과 Rollback Commit : 여러 쿼리가 성공적으로 처리된 상태다 즉 트랜잭션이 성공적으로 완료되었다는 것이다 Rollback : 쿼리를 실행하던 중 오류가 발생하고, 트랜잭션이 일어나기 전 상태로 돌아가는 것 즉 오류가 발생하기 전에 실행했던 모든 쿼리들을 undo한다 Rollback에서 해당 트랜잭션을 다시 시작하거나, 없앤다 ACID 트랜잭션의 4개의 특징이 있다 Atomic (원자성) 트랜잭션은 완전히 성공하던.. 2023. 3. 23.
35. 데이터 베이스 [ERD, 정규화 과정] 35. 데이터 베이스 [ERD, 정규화 과정] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) ERD (Entity Relation Diagram) 데이터 베이스를 구축할 때에 가장 기본적으로 뼈대 역할을 한다 데이터 베이스 안에 있는 테이블 간의 관계를 정의한다 사용자 또는 시스템의 요구 사항을 기반으로 작성이 된다 정규화 과정 (Normalization) 정규화 과정은 테이블/릴레이션을 나누는 것이다 저장 공간을 효율적으로 사용할 수 있다 테이블을 조인 하면서 느려질 수도 있지만, 대체로 성능이 더 좋아질 수 있다 이상현상을 해결한다 함수적 종석성을 통해 정규화 과정을 진행한다 이상현상 (Anomaly)? 데이터의 삽입, 갱신, 삭제를 할 때에 테이블/릴레이션에 부작용이 일어나는 것 불필요한 데.. 2023. 3. 22.
34. 데이터 베이스 [데이터 베이스의 기본] 34. 데이터 베이스 [데이터 베이스의 기본] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 데이터 베이스의 기본 데이터 베이스란? 데이터의 저장소, 즉 데이터의 집합이다 DBMS란? DataBase Management System으로 데이터베이스를 관리하고 운영하는 소프트웨어다 특정 DBMS마다 정의된 쿼리 언어 (query language)를 통해 데이터를 삽입, 조회, 수정, 삭제 (CRUD)를 할 수 있다 DBMS는 MySQL, PostgreSQL등이 있다 MangoDB 같은 경우 NoSQL 데이터베이스로, SQL을 사용하지 않고 함수를 이용하여 데이터를 끄집어낸다 엔터티 (Entity) 실체, 객체라고 할 수 있다 개념, 장소, 사건 등을 가리킨다 저장되고, 관리되어야 하는 데이터다 고유.. 2023. 3. 21.