본문 바로가기

부트캠프 개발일기123

33일차: 데이터베이스 설계 및 SQL 심화 ❯ 데이터베이스 설계 관계형 데이터베이스의 설계에서 중복이 최소화 되도록 데이터를 구조화하는것을 정규화(Nomalization) 이라고 한다. 크게 아래 세가지를 고려하여 설계하여야 한다. Data Redundancy(데이터 중복) : 동일한 데이터가 여러곳에 중복되어 위치하는 현상을 말한다. 동일한 데이터가 중복되어있을경우 저장 공간이 낭비되며 데이터 효율성이 감소하고, 일관된 자료 처리를 어렵게한다. 따라서 중복을 최소화하는것이 유리할 수 있다. Data Integrity(데이터 무결성) : 데이터가 우연하게 혹은 의도적으로 변경되거나 파괴되지 않고 보존되는 특성을 말한다. 정규화를 통해 데이터 무결성을 강화할 수 있다. 입력된 데이터가 오염되지 않고 입력된 그대로 사용할 수 있는것을 의미한다. An.. 2023. 3. 30.
32일차: 데이터베이스 설계 ❯ Relational database (관계형 데이터베이스) 관계형 데이터베이스는 테이블(table)들이 다른 테이블과 관계를 맺고 모여있는 집합체로 이해할 수 있다. 여기서 테이블은 사전에 정의된 열의 데이터 타입에 맞는 데이터가 행으로 저장된 것을 의미한다. 열(column, field) : 테이블의 한 열을 나타내며 정해진 타입을 갖는다. 필드 또는 속성이라고도 불린다. 행(row) : 관계된 데이터의 묶음을 의미한다. 한 테이블은 같은 수의 열을 가지며 튜플, 레코드라고도 불린다. 값(value) : 각각 행과 열에 대응하는 값을 가진다. 열의 타입에 맞는 값을 가져야한다. 키(key) : 테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본키(Primary key)라고 한다. 기본키는.. 2023. 3. 29.
31일차: SQL, ACID, MySQL 설치 및 실행 ❯ SQL(Structured Query Language) SQL이란, 관계형 데이터베이스에 사용되는 데이터베이스 언어이다. MySQL, Oracle, SQLite, PostgreSQL 등 다양한 데이터베이스에서 SQL 구문을 사용할 수 있다. 영어 해석 그대로 구조화된 쿼리 언어를 의미하는데 이 때 쿼리란 '질의문' 이라는 뜻을 가진다. 즉 쿼리를 통해 원하는 데이터를 필터링하거나 수정, 추가하는 등 원하는 동작을 수행할 수 있다. 이 때 SQL을 사용하기 위해서는 데이터 구조가 고정되어 있어야 한다. ❯ ACID ACID에 앞서 트랜잭션(Transaction)에 대해 이해해야한다. 트랜잭션이란 여러 작업을 하나로 묶어놓은 실행 유닛이다. 은행 계좌이체를 예로 들어보자. 한 계좌에서 인출은 되었으나 다.. 2023. 3. 28.
30일차: REST API ❯ REST API(Representational State Transfer API) 웹 애플리케이션에서 HTTP 메서드를 통해 서버와 통신하게 되는데, 서로 올바른 양식(내용)을 통해 메세지를 주고받아야 원활하게 동작이 가능해진다. (마치 식당에서 메뉴를 주문할 때 올바른 메뉴를 주문해야하는것과 유사하다.) REST API는 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 수행하는 방식이다. 모든 API가 REST API인것은 아니다. 리차드슨의 REST 성숙도 모델(RMM)에 따라 좋은 REST API가 구분된다. 0 단계 : HTTP 사용 / HTTP 프로토콜을 사용하는것을 의미한다. REST API를 위한 기본 구조. 1 단계 : 개별.. 2023. 3. 27.
29일차: 네트워크(TCP/IP, PORT, URL, HTTP 등) ❯ 애플리케이션의 종류 네이티브 애플리케이션 : 특정 기기에 설치해서 사용할 수 있는 애플리케이션. iOS, 안드로이드 등 특정 실행 환경에 종속되는 애플리케이션을 말한다. 웹 애플리케이션 : 웹 브라우저를 통해 접근 가능한 애플리케이션으로 별도의 설치가 필요없다. ❯ 네트워크를 만드는 기술 현재 진행중인 과정은 '백엔드 웹개발'과정이다. 웹 애플리케이션 개발에 필요한 기초적인 CS 지식에 대해 학습하고자 한다. 1) TCP/IP 기본 웹 애플리케이션이 작동하는 기반인 네트워크에 대해 먼저 알아보면, 좁은 범위에서 연결된 네트워크를 LAN(Local Area Network)이라고 하며 수많은 LAN이 모여 WAN(Wide Area Network)를 구성한다. 인터넷 프로토콜 스위트(Internet Pro.. 2023. 3. 24.
28일차: 알고리즘 with Math(순열, 조합) ❯ 순열(Permutation)과 조합(Combination) 알고리즘 문제를 풀기 위해서는, 일부 수학적인 개념이 필요하다. 순열이란, 요소 n개 중에서 m개를 선택하여 순서에 상관있게 뽑는 경우의 수를 말한다. 조합이란, 순서에 상관 없이 요소 n개 중에서 m개를 뽑는 경우의 수를 말한다. 순열과 조합은 반복문의 중첩을 통해 구현할 수 있으나 뽑아야하는 경우의 수가 많아지면 반복문을 사용하는것이 비효율적이다. 따라서 재귀함수를 통해서 구현할 수 있다. 다만, 재귀함수를 작성할때는 필요한 매개변수가 어떤것이 있을지 잘 생각해보는것이 중요하다. (재귀함수를 재호출하면서 변수가 초기화 되지 않도록) 순열을 사용해 뽑은 숫자 중 소수 개수 계산하기 import java.util.ArrayList; // n .. 2023. 3. 24.