>

2024/07 28

6주차 Day 1. 네트워크

📑 클라이언트: 네트워크를 통해 서버에 요청을 하고 서비스를 제공 받는 주체.ex. 핸드폰으로 음식배달 서비스를 요청하는 경우, 핸드폰이 클라이언트.    데스크탑에서 게임을 다운로드 받는 경우, 데스크탑이 클라이언트.   서버: 네트워크를 통해 클라이언트의 요청을 받고 서비스를 제공하는 주체. 중요 시스템이 상주하고 클라이언트의 요청을 처리하는 장치. 보통 서버는 다수의 클라이언트를 상대해야하고 대량의 데이터를 저장하며 잦은 서비스 요청을 처리해야하기 때문에 대형 고성능 PC를 서버로 둠.  • 서버의 종류- 클라우드 서버: 실제로 조작하는 사용자가 원격으로 사용할 수 있는 서버. (Google Cloud, AWS, Microsoft Azure 등)- 웹 서버: 웹 브라우저에서 요청한 웹 페이지를 제..

TIL 2024.07.31

6주차 Day 3. 소프트웨어 문서

📑 SRS(Software Requirements Standards, 요구사항명세서): 소프트웨어가 만족해야하는 요구사항을 상세하게 명세한 문서. • 작성에 필요한 조치들- 이해관계자들이 반드시 참여해야 함.- 비전공자도 이해할 수 있도록 언어를 정의하고 부록을 포함해야 함.- 소프트웨어 개발을 주도하는 기술진들도 반드시 참여.- 여러가지 비용이 현실적으로 고려되어야 함.- 소프트웨어 개발방법론에 따라 문서는 항상 최신상태를 유지.- 국제 및 국내 표준을 따르도록 기획. • SRS에 담겨야하는 내용 예시1. 소프트웨어 개요: 개발하고자하는 소프트웨어의 전반적인 내용을 요약.- 소프트웨어의 소개- 소프트웨어의 목적- 주 사용자에 대한 설명 2. 유저 시나리오: 사용자가 해당 소프트웨어를 사용하기 위한 일..

TIL 2024.07.31

6주차 Day 2. 빅데이터, 인공지능

📑 빅데이터: 다음의 세 가지 특성을 띠어야 함.1. 규모 - 굉장히 방대한 양의 유의미한 데이터.2. 속도 - 데이터의 생성 및 처리 속도가 매우 빠름.3. 다양성 - 데이터의 종류뿐만 아니라 형식이 다양.  데이터의 종류- 정형 데이터: 정량적이고 수치로 확인할 수 있거나 구조를 가지고 있는 데이터. 예) 시간, 시계열 데이터, 금융 데이터, ID/PW, 온도, 카드번호 등.- 비정형 데이터: 수치적으로 확인할 수 없거나 구조를 띠지 않는 데이터. 예) 그림, 소리, 영상 등.- 반정형 데이터: 정형데이터와 비정형 데이터의 성격을 둘 다 가지는 데이터. 예) DICOM 파일, JSON, XML, 스마트폰에서 위치 값을 함께 저장하는 사진 등.  데이터 전처리: 데이터를 AI에게 학습시키기 전이나 분..

TIL 2024.07.30

5주차 WIL

이번주.. 좀 더 열심히 할 수 있었는데. 아쉬움이 남는 한 주다.코드카타도 매일매일 다 못풀고 ㅜㅠ 갑자기 코드카타 난이도가 확 올라간 느낌이다.아니 어떻게든 돌아가게 만들어놓고 다른 풀이 확인해보면 ㅎㅎ.. 왜 이렇게 할생각을 못했나싶다. 나도 효율적이고 똑똑한 코드 짜고싶어 ..!✔️ 다음주는 일단 백트래킹부터 문제 풀어보고 시작하기 !!!✔️DFS, BFS 문제 풀기

WIL 2024.07.26

5주차 Day 5. set 자료형, 소프트웨어 설계

📑  파이썬 Set 자료형• 집합을 구현한 것으로 숫자, 문자, 문자열까지도 포함할 수 있다.• 셋 선언하기:  set이름 = { 원소들 }  또는  = set() 으로 비어있는 set을 선언할 수 있다.• 원소들의 중복을 허용하지 않는다. • 순서가 없다. set자료형을 출력하면 매번 다른 순서로 출력된다.• 슬라이싱과 인덱싱이 불가하다.• set 자료형의 개별 원소에 접근하려면 리스트로 형변환하여 접근해야 한다. [ 메소드 ]• 원소 추가 .add()    여러 개의 원소를 추가하는 경우 .update([ ... , ... , ... ])• 원소 삭제 .remove()  *해당 값이 없는 경우 에러가 발생하므로 에러 발생을 원치 않는다면 .discard() 메소드 사용.• 집합 연산: set자료형의..

TIL 2024.07.26

5주차 Day 4. 컴퓨터 구조와 운영체제

📑 하드웨어 기본• 메인보드: 컴퓨터의 부품 및 장치들을 설치하여 연동할 수 있게하는 부품. 제작사마다 모양, 색상 등이 다르지만 비슷함. Desktop / Laptop(노트북) • CPU: Central Processing Unit. 중앙처리장치. 컴퓨터의 두뇌 역할. 명령어를 해석하여 연산을 수행하는 역할. 컴퓨터의 성능에 가장 크게 관여. GPU에 비해 복잡한 연산 수행.*clock - CPU의 처리속도 단위. 석영이 진동하는 진동수에 따라 CPU가 동작. '오버클락'한다는 것은 기존의 컴퓨터의 속도를 강제로 빠르게하는 기술. CPU의 수명이 줄어들게 될 수 있다. • GPU: 그래픽처리장치. 그래픽 연산을 하기 위해 병렬처리를 할 수 있도록 설계되어 있음. GPU에는 코어가 수백,수천 개 존재...

TIL 2024.07.25

5주차 Day 3. 시간 복잡도

시간 복잡도cost - 시간자원(CPU), 공간자원(Memory) 점근적 복잡도 f(n) : 입력크기 n에 대한 알고리즘의 시간 복잡도(성능). 상수시간 복잡도 O(1) - 입력값이 아무리 커도 실행시간이 일정한 최고의 알고리즘. 단, 상수시간이 매우 큰 경우에는 의미가 없다..로그시간 복잡도 O(log) - 매우 큰 값에도 영향을 받지 않는다.선형시간 복잡도 O(n) - 입력값에 비례한다. 정렬되지 않은 리스트에서 최대, 최소 등을 찾는 경우가 이에 해당한다.O(nlogn) - 병합정렬을 비롯한 대부분의 효율 좋은 정렬 알고리즘.O(n^2) - 버블 정렬 같은 비효율적인 정렬 알고리즘.(nested loop에 해당)O(2^n) - n^2이랑 비교할 수 없을만큼.. 느리다.O(n!) - 답은 나와도 사용..

TIL 2024.07.24

5주차 Day 2. 이진 트리

🤍 트리 구조 1) 직접 클래스를 구현하기 2) 배열로 표현하기: 완전 이진 트리는 왼쪽부터 데이터가 쌓이므로 이를 순서대로 배열에 쌓으면서 표현하는 것. (BFS 순으로 배열에 넣는다) - 완전 이진 트리(단, 각 레벨에 노드가 꽉 차있다고 가정할 때): 레벨이 k이, 각 레벨에 최대로 들어갈 수 있는 노드의 개수는 2^k개.즉, 높이가 h일 때 최대 노드의 개수(N)는 2^(h+1) - 1 개이다. *트리의 높이는 레벨 0(루트 노드)부터 센다.N = 2^(h+1) - 1 일 때,  h = log₂(N=1) - 1  완전 이진트리 노드의 경우에 이렇고,이진 트리의 높이는 최대 O(log(N))이다.  이진 트리 구현# 트리 구현from binarytree.structures import TreeN..

TIL 2024.07.23

5주차 Day 1. 백트래킹

🤍백트래킹: 필요없는 경우를 가지치기(pruning)함으로써 시간복잡도를 줄이는 방법.N-Queens 문제 The n-queens puzzle is the problem of placing n queens on an n x n chessboard such that no two queens attack each other. Given an integer n, return all distinct solutions to the n-queens puzzle. You may return the answer in any order. Each solution contains a distinct board configuration of the n-queens' placement, where 'Q' and '.' bo..

TIL 2024.07.22

4주차 WIL

이번주는 강의와 알고리즘 코딩 문제 풀이 위주로 진행되었다. 스택과 큐, 그리고 해시테이블, 최대 힙을 구현해보았고 이를 사용해 코드카타 문제를 풀어보았다. 아직 연결리스트 부분은.. 제대로 구현하지 못해서 복습이 필요하다.  그리고 배열과 리스트가 계속 헷갈렸는데, 배열(array)와 연결리스트가 리스트에 속하고 배열은 접근이 쉽고 삽입이 어려운 반면, 연결리스트는 접근이 어렵고 삽입이 쉽다는 차이가 있다는 것을 배웠다. (시간복잡도 측면에서 큰 차이가 있어 목적에 맞게 사용하면 된다.) 그리고 흔히 파이썬에서 리스트라고 부르는 것이 배열이라는 것도 알게되었는데 구글링해서 찾은 정보와 강의자료의 정보가 좀 차이가 있어 헷갈렸다. 일단 파이썬에서의 리스트 = 배열이라 생각하면 될 것 같다. 다른 언어에서..

WIL 2024.07.19