SEB_BE_45/공부 정리


🧑🏻💻 TIL(Today I Learned) ✔️ Spring Framework 모듈 구성, Spring Boot 💡 아키텍처(Architecture) ➡️ 컴퓨터 시스템에서의 아키텍처는 어떠한 시스템을 구축하는 데 있어 해당 시스템의 비즈니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것 ➡️ 이해 당사자들이 전체 시스템 구조를 이해하는데 무리가 없도록 일반적으로 이미지나 도형 등 많이 사용함 ➡️ 너무 복잡하면 안 됨, 최대한 심플함을 유지하기 위해 노력해야 함 🔎 시스템 아키텍처 ➡️ 하드웨어와 소프트웨어를 모두 포함하는 어떤 시스템의 전체적인 구성을 큰 그림으로 표현한 것 ➡️ 기본적으로 해당 시스템이 어던 하드웨오로 구성되고 어떤 소프트웨어를 사용하는지를 대략적으로 알 수 있음 🔎..


🧑🏻💻 TIL(Today I Learned) ✔️ Spring Framework 특징 ✔️ Frameworks vs Libraries 프로그래밍 상에서의 Framework는 기본적으로 프로그래밍을 하기 위한 어떠한 틀이나 구조를 제공하는 것 Framework는 개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중할 수 있도록 해줌 애플리케이션의 흐름의 주도권이 개발자가 아닌 Framework에 있음 자동차로 비유를 하자면 Framework는 자동차의 뼈대, 즉 Frame 의미 Library는 자동차에서 다양한 기능을 제공하는 부품을 의미 ➡️ 자동차의 뼈대는 쉽게 교체할 수 없지만 부품은 쉽게 교체가 가능함 즉, 한번 정해진 Framework를 교체하는 일은 어렵지만, Library는 쉽게 교체가 가..


🧑🏻💻 TIL(Today I Learned) ✔️ 스키마(shema), 데이터베이스 설계 💡스키마(shema) ➡️ 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명이라고 할 수 있음 🔎 엔티티(Entity) ➡️ 고유한 정보의 단위, 데이터베이스에서 테이블로 표시할 수 있음 🔎 데이터베이스 관계 종류 1 : 1 관계 ➡️ 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우 각 전화번호가 단 한 명의 유저와 연결되어 있고 그 반대도 동일하다면 User 테이블과 Phonebook 테이블은 1 : 1 관계 → 하지만 자주 사용하지는 않음 1 : N 관계 ➡️ 하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우 한 명의 유저가 여러 전화번호를 가질 수 있으나 여..


🧑🏻💻 TIL(Today I Learned) ✔️ SQL, 관계형 데이터베이스 💡 관계형 데이터베이스 ➡️ 구조화된 데이터는 하나의 테이블로 표현할 수 있고 사전에 정의된 테이블을 relation이라고 부르기 때문에 테이블을 사용하는 데이터베이스를 관계형 데이터베이스라고 부름 데이터(data) : 각 항목에 저장되는 값 테이블(table; relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적됨 열(column; field) : 테이블의 한 열을 가리킴 레코드(record; tuple) : 테이블의 한 행에 저장된 데이터 키(key) : 테이블의 각 레코드를 구분할 수 있는 값, 각 레코드마다 고유한 값을 가짐 (기본키 - primary key, 외래키 - foreign..


🧑🏻💻 TIL(Today I Learned) ✔️ Rest API 💡 REST API ➡️ REST(Representational State Transfer)의 줄임말 ➡️ 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식 🔎 좋은 Rest API 디자인 하는 법 모든 단계를 충족해야 REST API라고 부를 수 있다고 주장하기도 하나 실제로 3단계까지 지키기 어렵기 때문에 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있음 → HTTP API 라고 부름 REST 성숙도 모델 - 0단계 ➡️ 0단계에서는 단순히 HTTP 프로토콜을 사용하기만 해도 됨, 이 경우는 해당 API를 당연히 REST API 라고 부를 수 없..


🧑🏻💻 TIL(Today I Learned) ✔️ 네트워크, 웹, HTTP 💡 웹 애플리케이션 ➡️ 정적인 웹사이트의 한계를 벗어나 다양한 동적인 응답을 웹 브라우저라는 소프트웨어를 통해 가능하게 한 것 ✍🏻 장점 브라우저를 통해 실행되기 때문에 설치나 다운로드 필요 없음 업데이트 등의 유지관리가 쉬움 네이티브 애플리케이션에 비해 만들기가 비교적 간편함 애플리케이션 스토어 승인이 필요 없음 ✍🏻 단점 인터넷이 없으면 사용이 안 됨 네이티브 애플리케이션에 비해 속도 느림 애플리케이션 스토어에서 관리되지 않기 때문에 사용자 접근성이 떨어짐 질적으로나 보안상 위험에 노출되기 쉬움 📍 네이티브 애플리케이션(Native-application) ➡️ 핸드폰에 모바일용 애플리케이션을 설치하는 것과 같이 특정 기기에..

🧑🏻💻 TIL(Today I Learned) ✔️ 의사코드, 시간 복잡도(Time Complexity), 탐욕 알고리즘(Greedy), 구현(implementation)-시뮬레이션(simulation) 1. 의사코드(pseudocode) 작성법 의사코드란? : 프로그래밍 언어로 코드를 작성하기 전에 우리가 쓰는 일상 언어로 프로그램이 작동하는 논리를 먼저 작성하는 것 ➡️ 컴퓨터에게는 빈틈없이 의사코드를 작성하고 코드를 작성해야 문제없이 작동될 수 있음 🔎 장점 1. 시간이 단축된다. 2. 디버깅에 용이하다. 3. 프로그래밍 언어를 모르는 사람과 소통할 수 있다. 🔎 의사코드 양식 ➡️ 다른 사람도 이해할 수 있는 자연어(영어나 한국어처럼 일상에서 사용되는 언어)만 사용한다. ➡️ 자연어와 프로그램 언..


🧑🏻💻 TIL(Today I Learned) ✔️ Tree, Graph 1. Tree(트리) ➡️ 그래프의 여러 구조 중 단방향 그래프의 한 구조 ➡️ 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무를 닮았다고 해서 트리 구조라고 부름 ➡️ 데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조 : 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조 (트리구조는 계층적으로 표현이 되고 아래로만 뻗어나가기 때문에 사이클이 없음) 루트(Root)라는 하나의 꼭짓점 데이터를 시작으로 여러 개의 데이터를 간선(Edge)으로 연결, 각 데이터를 노드(Node)라고 하며 두 개의 노드가 상하 계층으로 연결되면 부모/자식 관계 가짐 자식이 없는 노드는 나무의 잎과 같..


🧑🏻💻 TIL(Today I Learned) ✔️ 자료구조, 스택, 큐 1. 자료 구조(Data Structure) ➡️ 여러 데이터의 묶음을 저장하고 사용하는 방법을 정의한 것 ➡️ 데이터를 효율적으로 다룰 수 있는 방법을 모아 자료 구조라는 이름을 붙인 것 📍 데이터(Data)란? : 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값, 하지만 그 자체만으로는 정보를 가진다고 하기 힘듦 → 나이라는 데이터만 알고 있다면 사람의 나이인지, 동물의 나이인지, 나무의 나이인지 누구의 나이인지 알 수 없음 즉 데이터는 분석하고 정리하여 활용해야 의미를 가질 수 있음! → 사용 목적에 따라 형태를 구분하고 분류하여 사용해야 한다는 의미 → 물건을 정리하면 쉽게 찾아 쓸 수 있듯이 데이터를 ..