코드스테이츠 - 3회차 백엔드 부트캠프/Section 2 22

2022.10.06 목 - 데이터베이스 & SQL (2)

📄 학습내용 스키마(schema) 스키마(schema) : 데이터베이스에서 데이터 구성방식과 다른 엔티티 간의 관계에 대한 설명 관련 용어 엔티티(Entity) : 고유한 정보의 단위(보통 테이블 자체를 의미) 필드(field) : 엔티티의 속성, 특징(관계형 데이터베이스의 테이블에서 열에 해당) 레코드(record) : 테이블에 저장된 항목(관계형 데이터베이스의 테이블에서 행에 해당, 데이터 자체) 1:N(one-to-many, 일대다) : 하나의 엔티티가 다른 엔티티를 하나 이상의 관계를 가지는 형태 N:N(many-to-many, 다대다) : 두 엔티티가 서로 하나 이상의 관계를 가지는 형태 기본키(primary key) : 고유값으로 자동으로 증가, 각 테이블의 레코드들을 구분하기 위해서 사용 테..

2022.10.05 수 - 데이터베이스 & SQL (1)

📄 학습내용 SQL 데이터페이스의 필요성 SQL(Structured Query Language) : 데이터페이스용 프로그래밍 언어로, 주로 관계형 데이터베이스에서 원하는 데이터를 얻기 위해서 구조화된 qeury를 이용해서 필터링하는 과정을 거침 SQL과 NoSQl의 차이 SQL : 데이터가 구조가 고정된 관계형 테이터베이스를 다룸 NoSQL : 구조가 고정되지 않아서 테이블이 아닌 다른 형태로 데이터를 저장하는 데이터베이스를 다룸 쿼리(Query) : 질의문 기본 쿼리문 wildcard 이용 영속성 : 트렌지션의 지속(durability) 주제 주제 주제 주제 주제 🧶 발생한 문제 및 해결방법 문제점) MySQL 재설치 과정에서 3306 포트가 이미 사용 중('The specified port is al..

2022.10.14 화 - Rest API, Postman

📄 학습내용 Rest API https://aws.amazon.com/ko/what-is/api/ 좋은 API 자료 - REST API -> 1) 모든 리소스를 URI로 표현 2) 서버 상태 고려 X 3) 자원에 대한 행위는 HTTP method 사용 주로 CamelCase를 많이 사용하고, Snake_case와 Spinal-case를 특별한 상황에서 많이 사용 Postman 주제 주제 주제 주제 🧶 발생한 문제 및 해결방법 문제점) 조합 경우의 수 구하기 해결방법) nCr = n-1Cr-1 + n-1Cr 공식 및 재귀 이용 // 조합 계산기(nCr = n-1Cr-1 + n-1Cr 공식 이용) public int combination(int n, int r) { // 계산 간편화(nCr = nCn-r 공..

2022.09.30 금 -

📄 학습내용 애플리케이션의 종류 네이티브 애플리케이션(Native-Application) : 특정 전자기기에 설치되어 사용되는 애플리케이션 사용 예시 : Android, MacOS, Windows ... 웹 애플리케이션(Web-Application) : 웹 브라우저에서 접근 가능한 애플리케이션 네트워크 TCP/IP IP - nslookup 도메인 도메인의 IP주소를 확인하기 위해서 사용하는 명령어 file:///C:/Users/sinar/Desktop/ TCP와 UDP PORT URL DNS 리졸버(resolver) : 운영체제(OS) 내부적으로 만들어진 프로그램으로, 리졸버가 DNS 클라이언트의 요청 받으면 요청을 네임 서버로 전달해서 받은 응답을 DNS 클라이언트에게 전달하는 프로그램 존 파일(zon..

2022.09.29 목 - 순열, 조합

📄 학습내용 알고리즘에서 자주 사용되는 수학적 개념 최대공약수(GCD) : 공약수 중 가장 큰 수(공약수 : 두 수의 공통된 약수) 유클리드 호제법 A>B인 두 자연수 A, B가 주어졌을 때, a%b = r이라고 한다면 A, B의 최대공약수 GCD(A, B)는 다음과 같다. 이때 r=0 일 때 B가 GCD(A, B)의 값이다. GCD(A, B) = GCD(B, r) // 재귀 - 최대공약수 int GCD(int A, int B) { if(A%B == 0) return B; return GCD(B, A%B); } // 반복문 - 최대공약수 int GCD(int A, int B) { while(B != 0) { int r = A%B; A = B; B = r; } return A; } 최소공배수(LCM) : ..

2022.09.28 수

⭐ 공부 난이도 그리디 알고리즘 문제 풀기 ☆☆☆☆★ 🌕 느낀점 코플릿 1번 문제에서 최대 2개까지 담을 수 있다는 조건을 보지 못해서 문제를 다시 풀게 되었다. 진짜 문제를 자세히 읽어야겠다. 그래서 그리디로 문제가 풀리지 않아서 왜 그런지 계속 생각하다가, 이유가 조건을 제대로 읽지 않아서 그런 것이었다. 조건을 잘못 읽어서 힘들게 푼 것 빼고는 문제 난이도는 그렇게 높은 편도 아니었고, 양도 많지 않았다. 하지만 4번에 너무 시간을 쏟아서 시간을 효율적으로 쓰지 못했다. 전략적으로 문제를 풀어야겠다.

2022.09.27 화 - 의사코드, 시간 복잡도, 탐욕 알고리즘

📄 학습내용 알고리즘(Algorithm) 알고리즘 : 문제를 해결하는 최선의 결과을 구하는 것 단계 문제 이해하기 문제의 설명, 입출력, 제한 사항, 주의 사항 등 숙지하기 전략 세우기 문제 해결에 적합한 알고리즘 선택하기 의사코드 작성하기 코드 작성하기 의사코드(pseudo code) 의사코드 : 일상적인 언어로 코드의 동작이나 논리를 작성하는 것 의사코드를 구체적으로 작성해야하는 이유 : 코드 작성 시 실행에 문제 없이 동작 가능 장점 시간 단축 디버깅 용이 프로그래밍 언어를 모르는 사람과 소통 가능 좋은 의사코드 특징 자신만의 원칙 세우기 일관성 다른 사람이 이해 가능해야 함 작성방법 자연어 자연어 + 프로그래밍 언어 시간 복잡도(time complexity) 시간 복잡도 : 입력값(N)에 따른 연..

2022.09.26 월 - 연결 리스트, 해시 테이블, 힙트리

📄 학습내용 연결 리스트(Linked List) 연결 리스트 : 값와 다음 노드의 주소를 가진 하나의 노드들이 선형적으로 이어진 자료구조 구조 : 노드들이 흩어진 공간에 위치함 특징 쉽고 빠른 노드의 추가 및 삭제 : 시간 복잡도 : O(1) 특정 노드의 값을 찾기 위해서 최대 전체 순회 필요 : 시간 복잡도 : O(N) head node : 연결 리스트의 첫번째 노드 사용하는 경우 삽입 및 삭제가 빈번히 일어나는 경우 동적 기억장소 관리(dynamic storage managemnet) : 필요한 메모리만 할당 걸비지 컬렉션(Garbage Collection) 해시 테이블(Hash Table) 해시 테이블 : 해시함수으로 생성된 해시를 키와 데이터를 저장하는 위치로 사용한 자료구조 인자가 키(key)인..

2022.09.23 금 - 그래프, 트리, 이진탐색트리, BFS/DFS

📄 학습내용 그래프(Graph) 여러 정점들을 간선으로 연결해서 관계를 표현한 자료구조 구조 직접적인 관계 : 두 정점이 하나의 간선으로 연결된 관계 간접적인 관계 : 두 정점이 여러 개의 간선으로 연결된 관계 표현 방식 인접 행렬 정점의 인접한 상태를 표현한 2차원 배열 사용 : 두 정점 사이의 인접 관계 확인, 가장 빠른 경로(shortest path) 구할 때 ex) int[][] edges = new int[][] { {0, 0, 1}, {1, 0, 1}, { 1, 0, 0 } }; 인접 리스트 정점의 인접한 상태를 리스트로 표현 메모리를 효율적으로 사용하고 싶을 때 ex) int[][] edges = new int[][] { { 1, 2 }, { 3 }, { 0, 1 }, { } }; 용어 정점..

2022.08.22 목 - Stack & Queue

📄 학습내용 자료구조 자료구조 : 여러 데이터를 저장하고 다루는 방법 데이터(data) : 모든 자료의 값들 이러한 데이터를 가공해야 가치가 있음 상황에 필요한 자료구조를 사용해서 문제 해결 가능 Stack 스택(Stack) : 데이터를 순서대로 쌓아서 역순으로 사용하는 구조 특징 LIFO(Last In First Out) 또는 FILO(First In Last Out) 하나의 입출력 방향(제한적 접근) 하나의 데이터만을 입출력 가능 구조 top : 마지막에 들어온 요소 push : 데이터 넣기 pop : 데이터 빼기 구현 - Stack 데이터 타입 이용 Stack stack = new Stack(); Queue 큐(Queue) : 데이터를 순서대로 쌓아서 사용하는 구조 큐의 종류 선형큐(Linear Q..