F-Lab 66

[F-Lab 페이백 모각코 46일차] (CS) CHAPTER 10 보안과 암호화

평문을 암호문으로, 암호문을 평문으로 학습목표 암호화 기술의 등장 배경을 이해한다. 비밀키 암호화 방식의 종류와 암호화 과정을 알아본다. 공개키 암호화 방식의 종류와 암호화 과정을 알아본다. TIL 보안과 암호화 보안과 암호화의 개요 암호화 기술 초기 암호화 방식 시저 암호 시저 암호의 원리 시저 암호의 원리: 각 문자를 알파벳 상에서 일정 거리만큼 이동시켜서 암호화하는 방식입니다. 키를 알 수 없는 경우 해독 방법 키를 알 수 없는 경우 해독 방법: 브루트 포스 공격을 통해 가능합니다. 알파벳의 모든 가능한 이동 거리에 대해 시도하여 평문과 암호문이 일치하는 경우를 찾습니다. 단어 키를 사용한 암호화 단어 키를 사용한 암호화: 키로 사용될 단어를 선택하고, 이를 이용하여 각 문자를 암호화합니다. 숫자 ..

[F-Lab 페이백 모각코 45일차] (CS) CHAPTER 9 네트워크와 인터넷

인터넷에서 정보 전송 과정 학습목표 네트워크의 개념을 이해하고 LAN과 WAN의 차이점을 알아본다. 인터넷의 개념을 이해하고 인터넷 서비스의 종류를 알아본다. IP 주소와 도메인 이름의 역할을 알아본다. 인터넷을 이용한 통신 과정을 알아본다. 네트워크에서 오류 검출 방법을 알아본다. TIL 네트워크와 인터넷 네트워크와 인터넷의 개요 네트워크의 개념 네트워크란, 컴퓨터끼리 연결되어 정보를 주고받을 수 있도록 하는 기술입니다. 이를 통해 데이터를 효율적으로 관리하고 공유할 수 있습니다. 네트워크의 분류 네트워크는 크게 LAN(Local Area Network), WAN(Wide Area Network), WLAN(Wireless Local Area Network) 등으로 분류됩니다. 각각의 특징과 장단점을 ..

[F-Lab 페이백 모각코 44일차] (CS) CHAPTER 8 데이터베이스

방대한 데이터를 다루는 기술 학습 목표 데이터베이스의 필요성을 이해하고 데이터베이스 관리 시스템의 역할을 알아본다. 관계형 데이터 모델의 구성을 살펴보고, 관계형 데이터 연산을 직접해본다. 데이터베이스를 구축하고 활용할 때 사용하는 언어인 SQL의 주요 문법을 알아본다. TIL 데이터베이스 데이터베이스의 개요 데이터베이스의 개념: 데이터베이스란 조직의 업무 수행에 필요한 데이터를 모아 놓은 것입니다. 데이터베이스 관리 시스템: 데이터베이스를 관리하는 소프트웨어입니다. 데이터 모델: 데이터베이스를 구축하는 데 사용하는 모델입니다. 관계형 데이터베이스 관계형 데이터 모델: 데이터를 테이블 형태로 나타내는 모델입니다. 관계형 데이터 연산: 관계형 데이터베이스에서 사용되는 연산자입니다. 선택: 특정 레코드를 선..

[F-Lab 페이백 모각코 43일차] (CS) CHAPTER 7 알고리즘

문제 해결을 위한 효율적인 방법과 절차 학습 목표 알고리즘의 의미와 조건을 알아본다. 선택 정렬, 삽입 정렬, 버블 정렬 등 정렬 알고리즘의 동작 과정을 알아본다. 선형 탐색, 이진 탐색 등 탐색 알고리즘의 동작 과정을 알아본다. 피보나치 수열, 하노이 탑, 퀵 정렬 등 재귀 알고리즘의 동작 과정을 알아본다. TIL 알고리즘 알고리즘의 개요 알고리즘의 개념: 문제를 해결하기 위한 명확하고 구체적인 절차나 방법 정렬 알고리즘 선택 정렬 선택 정렬의 동작 과정: 주어진 배열에서 최솟값을 찾아 첫 번째 위치와 교환, 그 다음으로 남은 배열에서 최솟값을 찾아 두 번째 위치와 교환... 이를 반복하여 정렬 완료 파이선으로 구현한 선택 정렬 삽입 정렬 삽입 정렬의 동작 과정: 주어진 배열에서 두 번째 원소부터 시작..

[F-Lab 페이백 모각코 42일차] (CS) CHAPTER 5 프로그래밍 언어

파이선으로 배우는 컴퓨팅 사고력 학습목표 프로그래밍 언어의 개념을 이해하고 종류를 살펴본다. 변수의 개념을 이해하고 다양한 자료형을 이용하여 프로그램을 작성해본다. 제어 구조의 종류를 살펴보고 제어 구조를 활용한 프로그램을 작성해본다. 함수의 개념을 이해하고 함수를 활용한 프로그램을 작성해본다. TIL 프로그래밍 언어 프로그래밍 언어의 개요: 프로그래밍의 이해: 프로그래밍은 컴퓨터가 실행할 수 있는 명령어를 작성하는 과정입니다. 프로그래밍을 하기 위해서는 프로그래밍 언어에 대한 이해가 필요합니다. 프로그래밍 언어의 종류: 프로그래밍 언어는 수백 가지가 존재하며, 각 언어마다 특징과 용도가 다릅니다. 대표적인 언어로는 C++, Java, Python, JavaScript 등이 있습니다. 프로그래밍과 컴퓨팅..

[F-Lab 모각코 페이백 41일차] (CS) CHAPTER 6 자료구조

데이터를 효율적으로 이용하기 위한 저장 방법 학습목표 자료구조의 의미를 이해하고 종류를 알아본다. 배열과 연결 리스트의 구조를 이해하고 데이터의 삽입과 삭제 과정을 알아본다. 스택과 큐의 구조를 이해하고 데이터의 삽입과 삭제 과정을 알아본다. 그래프의 구조를 이해하고 깊이 우선 방법과 너비 우선 방법으로 탐색해본다. 트리의 구조를 이해하고 이진 탐색 트리에서 데이터의 삽입과 삭제 과정을 알아본다. TIL 자료구조 자료구조의 개요 자료구조의 개념: 데이터를 효율적으로 이용하기 위해 저장하는 방법이다. 이를 통해 데이터에 대한 검색, 삽입, 삭제 등의 연산을 효율적으로 처리할 수 있다. 배열과 연결 리스트 배열: 동일한 데이터 타입의 변수들을 하나의 이름으로 엮어서 관리하는 선형 자료구조이다. 데이터를 인덱..

[F-Lab 모각코 페이백 40일차] (CS) CHAPTER 3 컴퓨터 구조

부팅부터 프로그램 실행까지 컴퓨터 시스템의 구성 컴퓨터 시스템의 구성 요소 중앙처리장치 주기억장치 보조기억장치 입출력장치 TIL 컴퓨터 구조 컴퓨터 시스템의 동작 컴퓨터 시스템의 동작 과정 컴퓨터 시스템은 부팅 과정을 거쳐, 운영 체제를 실행하고 이후에 프로그램 실행이 가능하다. 부팅은 컴퓨터를 켤 때 실행되는 초기화 과정이다. 바이오스와 부팅 프로그램, 운영 체제 등이 차례로 실행되어 컴퓨터 시스템을 준비하고, 사용자가 프로그램을 실행할 수 있는 상태가 된다. 부팅 부팅은 컴퓨터를 켤 때 실행되는 초기화 과정이다. 부팅은 바이오스와 부팅 프로그램, 운영 체제 등이 차례로 실행되어 컴퓨터 시스템을 준비하고, 사용자가 프로그램을 실행할 수 있는 상태가 된다. 바이오스 실행 컴퓨터 시스템을 켜면, 바이오스(..

[F-Lab 모각코 페이백 39일차] (코테) 프로그래머스 과일 장수 (Java)

학습목표 코테 문제 학습 및 숙달 TIL 코테 문제 핵심 및 접근 법 과일장수 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 ..

[F-Lab 모각코 페이백 38일차] 젠키스로 EC2에 배포하기

학습목표 젠키스로 EC2에 배포하기 TIL 젠키스로 EC2에 배포하기 CI/CD로 나의 깃허브 프로젝트를 배포를 하려고 하였다. 젠킨스가 CI/CD에 사용된다고 해서 젠킨스 공부하고 그렇다고 다 알 수는 없어서 젠킨스를 직접 설치하면서 필요한 부분은 공부하면서 진행하려고 하였다. 우선 하나의 EC2에 톰캣깔고 나는 스프링 부트를 사용하엿기 때문에 이 경우 자바 17을 사용하여야 하였다. JDK17을 설치하고 Mysql도 설치를 하였다. 리눅스를 이용하였지만 보통 나는 Ubuntu를 사용하였지만 이번에 Amazon Linux 2023이라는 리눅스가 있어서 이것을 이용하여 보았다. 약간 다른 리눅스(Ubuntu)랑 명령어가 다르고 추가적으로 몇가지 작업을 해야 할 떄가 있었다. 그것 빼고는 Amazon Li..

[F-Lab 모각코 페이백 37일차] (CS) CHAPTER 4 운영체제

하드웨어와 사용자 사이의 중재자 운영체제 학습목표 운영체제가 왜 필요하고 어떤 기능을 하는 지 알아본다. 운영체제의 프로세스 관리 방법을 알아본다. 운영체제의 프로세스 스케쥴링 기법에 대해 알아본다. 운영체제의 주기억장치 관리 방법을 알아본다. 운영체제의 파일 관리 방법을 알아본다. TIL 운영체제 운영체제의 개요 운영체제의 개념: 운영체제는 쉽게 말해 컴퓨터 시스템의 자원을 효율적으로 관리하고, 다양한 응용 프로그램을 실행할 수 있도록 지원하는 기반 프로그램입니다. 운영체제는 컴퓨터 하드웨어와 응용 프로그램 사이에서 중개자 역할을 하며, 하드웨어를 제어하고 응용 프로그램이 하드웨어를 사용할 수 있는 환경을 제공합니다. 운영체제의 기능: 운영체제의 주요 기능으로는 사용자 인터페이스(UI)를 제공하는 것이..