전체 글 41

[네트워크] 파이썬 소켓 프로그래밍

소켓 프로그래밍 소켓(Socket)이란 무엇인가 하나의 프로세스로부터 다른 프로세스로 보내는 메시지는 네트워크를 통해 움직이며, 프로세스는 소켓(socket)을 통해 네트워크로 메시지를 보내고 받는다. 소켓은 호스트의 애플리케이션 계층과 트랜스포트 계층 간의 인터페이스로, 애플리케이션과 네트워크 사이의 API(Application Programming Interface)라고도 한다. 즉, 소켓이란, TCP나 UDP와 같은 트랜스포트 계층을 이용하는 API를 말한다. 소켓은 네트워크에서 프로세스로 데이터를 전달하며, 프로세스로부터 네트워크로 데이터를 전달하는 출입구 역할을 한다. 클라이언트(Client)와 서버(Server) 일반적인 네트워크 애플리케이션은 2개의 서로 다른 종단 시스템에 존재하는 클라이언..

Network 2023.07.24

[알고리즘] 그래프 탐색 알고리즘: DFS/BFS

이 글은 유튜버 '동빈나'의 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 강의를 보고 작성한 글이며, 강의 링크는 아래를 참고하면 된다. https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 탐색 탐색(Search)이란, 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정이다. 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다. DFS/BFS는 코딩 테스트에서 매우 자주 등장하는 유형이므로 반드시 숙지해야 한다. DFS와 BFS를 이해하기 위한 자료구조 및 알고리즘에 대해 살펴보도록 하자. 스택 자료구조 📚 스택 자료구조는 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조이다. ..

Algorithm 2023.07.21

[알고리즘] 구현

이 글은 유튜버 '동빈나'의 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 강의를 보고 작성한 글이며, 강의 링크는 아래를 참고하면 된다. https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 구현 구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정을 말한다. 흔히 알고리즘 대회에서 구현 유형의 문제는 풀이는 떠올리는 것은 쉽지만, 소스코드로 옮기기 어려운 문제를 의미한다. 구현 유형의 예시 알고리즘은 간단한데, 코드가 지나칠 만큼 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해..

Algorithm 2023.07.16

[알고리즘] 그리디 알고리즘 (Greedy Algorithm)

이 글은 유튜버 '동빈나'의 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 강의를 보고 작성한 글이며, 강의 링크는 아래를 참고하면 된다. https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 그리디 알고리즘 (Greedy Algorithm) 그리디 알고리즘(탐욕적인 방법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 그리디 해법은 그 정당성 분석이 중요하며, 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토하는 과정이 필요하다. 예시 [문제 상황] 루트..

Algorithm 2023.07.13

[파이썬] 문법 정리 - 리스트 자료형

이 글은 유튜버 '동빈나'의 "이것의 취업을 위한 코딩 테스트다 with 파이썬" 강의를 보며 정리한 내용이다. https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 강의 출처 리스트 자료형 리스트 자료형이란 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형이다. 사용자 입장에서 C나 자바에서의 배열(Array)의 기능 및 연결 리스트와 유사한 기능을 지원한다. C++의 STL vector와 기능적으로 유사하다. 리스트 대신에 배열 혹은, 테이블이라고 부르기도 한다. 리스트 초기화 리스트는 대괄호([])안에 원소를 넣어 초기화하며, 쉼표(,)로 원소를 구분한다. 비어 있는 리스트를 선언하고자 ..

Programming/Python 2023.07.11

[파이썬] 문법 정리 - 수 자료형

지난 학기에 알고리즘 스터디를 진행하게 되었는데, 파이썬으로 코딩 테스트 문제를 풀기 위해 파이썬 간단 문법에 대해 정리한 내용을 올려보려고 한다. 유튜버 '동빈나'의 "이것이 취업을 위한 코딩 테스트다 with 파이썬" 강의를 보고 작성한 글이며, 강의 링크는 아래를 참고하면 된다. https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 수 자료형에 대한 개념에 대해 알아보기 전에, 먼저 자료형엔 무엇이 있는지에 대해 알아보자. 자료형 모든 프로그래밍은 결국 데이터를 다루는 행위이다. 자료형에 대한 이해는 프로그래밍의 길에 있어서의 첫 걸음이다. 파이썬의 자료형에는 여러 가지가 있는데, 그 종류는 다음과 같다..

Programming/Python 2023.06.25

[라즈베리파이] 버전 4 OS 설치

라즈비안 다운로드 먼저, 아래의 사이트에 접속한다. https://www.raspberrypi.com/software/ Raspberry Pi OS – Raspberry Pi From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody. www.raspberrypi.com Manually install an operating system image → ‘see all download options’ 클릭 Rasberry Pi OS with desktop → Download 버튼 클릭 Etcher Tool 다..

Raspberrypi 2023.06.24

[네트워크] 캡슐화와 역캡슐화

캡슐화와 역캡슐화를 이해하기 위해서는 TCP/IP 5계층에 대한 이해가 필요하다. TCP/IP 5계층에 대한 설명은 해당 글을 참조하길 바란다. 📌 TCP/IP 5계층 [네트워크] TCP/IP 5계층 ✏️ TCP/IP (Transmission Control Protocol/Internet Protocol) TCP/IP는 현재의 인터넷에서 사용하는 프로토콜 그룹(여러 계층들에서 조직된 프로토콜 세트)이다. 즉, 상호 작용하는 모듈들로 이루어진 계층적 chinkl.tistory.com ✏️ 캡슐화 각 계층의 상위 계층으로부터의 패킷을 페이로드라고 하며, 데이터를 전송하기 위해 필요한 정보를 헤더라고 한다. 캡슐화란, 데이터를 전송하는 송신 측에서 상위 계층으로부터 온 패킷(페이로드)에 자신의 헤더 정보를 추..

Network 2023.01.16

[네트워크] TCP/IP 5계층

✏️ TCP/IP (Transmission Control Protocol/Internet Protocol) TCP/IP는 현재의 인터넷에서 사용하는 프로토콜 그룹(여러 계층들에서 조직된 프로토콜 세트)이다. 즉, 상호 작용하는 모듈들로 이루어진 계층적인 프로토콜을 말한다. 계층적이라는 말은 각 상위 계층 프로토콜이 한 개 이상의 하위 계층 프로토콜로부터 제공되는 서비스들의 지원을 받는다는 말을 의미한다. ✏️ TCP/IP 5계층 모델 원래 TCP/IP 프로토콜 그룹은 4개의 소프트웨어 계층으로 정의되었으나, 현재 TCP/IP는 5계층 모델로 간주된다. 아래의 그림은 TCP/IP 5계층 모델의 모습이다. TCP/IP의 각 계층들 1. Physical (물리 계층) 물리 계층은 프레임의 각 비트를 다음 링크..

Network 2023.01.16

[네트워크] ping - 네트워크 관련 Linux 명령어

Ping 외부 호스트 서버가 네트워크상으로 접근이 가능한지 확인해 보는 명령어 ICMP 프로토콜을 이용하여 외부 호스트에 신호 전송, 신호를 받은 호스트는 다시 응답을 주면서 서로 네트워크가 연결되어 있음을 확인시켜 준다. Ping 명령어 사용 -c : ping을 보낼 횟수, 생략 시 무제한으로 실행 -i : 보내는 간격, 생략 시 1초 단위로 설정 ping의 기본 명령어 형식은 다음과 같다. ping -c [요청수] -i[초단위 전송간격] [도메인명 혹은 IP 주소] 8.8.8.8로 ping을 3회 실행 ping -c 3 8.8.8.8 8.8.8.8로 ping을 10초 단위로 테스트 ping -i 10 8.8.8.8 www.naver.com으로 ping을 실행시켜 IP 확인 ping www.naver...

Network 2023.01.10