전체 글

· Linux
오늘은 리눅스의 부트 매니저에 대해 알아보는 시간을 갖도록 하겠습니다. 부트로더 부트로더란? Bootstrap Loader의 준말 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램 부트로더 기능 OS 실행 전 커널이 정상 실행을 위해 필요 모든 관련 작업을 마무리하고 최종적으로 OS를 실행시키기 위한 프로그램 임베디드 시스템 부트로더는 PC의 BIOS와 OS Loader기능 수행하며 시스템이 부팅할 때 가장 먼저 수행 OS 실행에 필요한 환경 설정하고 OS 이미지 메모리에 복사한다. 부트로더는 부트매니저라고도 부르며 크기는 512byte로 하드디스크의 첫 번째 섹터인 MBR(Master Boot Record)에 위치한다. 주 파티션마다 부트 섹터..
· Java
오늘은 AES-256 암호화 방식을 이용하여 간단한 보안 프로그램을 구현해보도록 하겠습니다. 개념 다지기 일단 코드를 짜기전에 개념을 살펴보도록 하겠습니다. 첫번째는 AES입니다. 우리가 만들 보안 프로그램은 AES기반의 암호화 방식을 이용한 프로그램입니다. "그럼 AES가 뭘까요??" 바로.. AES는 Advanced Encryption Standard의 약자로 고급 암호화 표준이란 뜻을 가지고 있습니다. AES는 암호화 및 복호화에 동일한 키를 사용하는 대칭키 알고리즘으로 높은 안전성과 빠른 속도로 인해 양방향 암호화에서 가장 많이 사용되는 방식입니다. AES 암호화의 종류는 AES-128, AES-192, AES-256이 있으며 뒤에 붙은 숫자는 키의 길이를 의미합니다. 우리가 사용할 암호화는 AE..
· Linux
오늘은 파티션에 대해 알아보는 시간을 갖도록 하겠습니다. 파티션 파티션이란? 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것이다. 다중 파티션의 장점 파티션마다 독립적인 파일 시스템이 운영되기 때문에 파일 점검 시간이 줄어들어 부팅 시간을 단축시킬 수 있다. 특정 파티션의 파일 시스템이 손상되더라도 다른 파티션에 영향을 주지 않기 때문에 높은 안정성을 보장한다. 필요한 파티션만 포맷할 수 있기 때문에 백업과 업그레이드가 편리하다. 파티션 상태 정보를 확인할 수 있는 파일은 /proc/partitions 이다. 파티션 종류 주 파티션(Primary) 부팅이 가능한 기본 파티션 하나의 하드디스크에 최대 4개의 주 파티션 분할 가능 확장 파티션(Extended) 주 파티션 내에 생성, 하나의 ..
· Java
오늘은 JAVA를 이용한 간단한 암호화/복호화 프로그램을 구현해 보았다. 로직 간단한 암호화/복호화 원리는 ASCII 코드를 이용하여 로직을 짰습니다. 암호화 입력 범위 영어 : a b c d e f g h i j k l m n o p q r s t u v w x y z 숫자 : 0 1 2 3 4 5 6 7 8 9 출력 범위 ` ~ ! @ # $ % ^ & * ( ) - _ + = | [ ] { } ; : , . / q w e r t y u i o p 영어 입력 → 특수문자 출력 a → ` b → ~ c → ! d → @ e → # f → $ g → % h → ^ i → & j → * k → ( l → ) m → - n → _ o → + p → = q → | r → [ s → ] t → { u → } v..
· Python
오늘은 Flask 라이브러리를 이용한 Python WEB Server를 구축하여 간단한 WEB Service를 구현해보았다. app.py from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/smile') def smile(): return render_template("smile.html") @app.route('/dots') def dots(): return render_template("dots.html") @app.route('/404') def error(): return rende..
· TeamProject
팀 팀 이름은 새싹콩나물로 정해졌다. 팀 이름에 대한 의미는 우리 팀원들과 새싹과 콩나물을 비유하여 빠르게 성장해나가고 있는 개발자를 의미합니다. 팀원들은 개인정보 차원해서 비공개하도록 하겠습니다. 서비스 저희 서비스명은 PLURA입니다. PLURA 서비스는 무료 음악 스트리밍 웹서비스입니다. 기술 Design Tool : Figma Frontend Tool : Visual Studio Code Script : HTML, CSS, JS Framework : React, Node.js Backend Tool : Intellij, Dbeaver, Excel Language : JAVA Framework : Spring Boot Database : Mysql 일정 분석 : 2022.08.29 ~ 2022.09..
· JavaScript
오늘은 HTML + CSS + JS를 이용하여 간단하게 WEB에 시계를 뛰어 보도록 하겠습니다. index.html 00 00 00 AM style.css @import url('https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600,700,800,900&display=swap'); *{ margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body{ display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #2f363e; } #time..
· C
오늘은 C언어를 이용하여 정렬 프로그램을 구현해보도록 하겠습니다. 기능 배너 C언어 객체 지향 프로그래밍 정렬 방법 선택 정렬할 리스트는 자동 생성 오름차순, 내림차순 모두 출력 프로그램 종료 소스 코드 #include #include // system(); 함수 포함 라이브러리 #include // rand() 함수 포함 라이브러리 #include // time() 함수 포함 라이브러리 #define MAX_SIZE 25 int List_after_sorting[MAX_SIZE]; // 정렬 후 리스트 (오름차순) int List_after_sorting2[MAX_SIZE]; // 정렬 후 리스트 (내림차순) int List_before_sorting[MAX_SIZE]; // 정렬 전 리스트 void ..
· Python
오늘은 Pymysql을 통해 Python과 Mysql을 연동하여 데이터베이스를 구축하는 Python 코드를 짜보도록 하겠습니다. 패키지 설치 일단 Python과 Mysql을 연동시키기 위한 라이브러리인 Pymysql 패키지를 설치한다. 1. 터미널창을 실행한다. 2. 아래 명령어를 입력한다. pip install pymyql 3. ENTER Key를 누른다. 버전 확인하기 정상적으로 패키지가 설치되었는지 학인하여야 합니다. 1. 터미널창을 실행한다. 2. 아래 명령어를 입력한다. pip show pymyql 3. ENTER Key를 누른다. 4. 패키지 정보가 정상인지 확인한다 소스 코드 import pymysql db = pymysql.connect(host="localhost", user="root"..
· Python
오늘은 Python에서 구글 번역 라이브러리를 이용하여 간단한 번역기를 구현해보도록 하겠습니다. 패키지 설치 제일 먼저 구글 번역 라이브러리를 사용하기 위한 패키지를 설치한다. 1. 터미널창을 실행한다. 2. 아래 명령어를 입력한다. pip install googletrans==4.0.0-rc1 3. ENTER Key를 누른다. 버전 확인하기 정상적으로 패키지가 설치되었는지 학인하기 위해 버전을 확인하여야 합니다. 1. 터미널창을 실행한다. 2. 아래 명령어를 입력한다. pip show googletrans 3. ENTER Key를 누른다. 4. Version이 4.0.0인지 확인한다 소스코드 import googletrans import time translator = googletrans.Transl..
· Rust
오늘은 Rust를 이용한 다중 클라이언트 채널형 채팅 프로그램을 구현해 보았다. server.rs use std::io::{self, ErrorKind, Read, Write}; use std::net::TcpListener; use std::sync::mpsc; use std::thread; use std::time::Duration; const MSG_SIZE: usize = 100; fn main() { println!("[Server]"); println!("\nEnter server ip"); let mut ip = String::new(); io::stdin().read_line(&mut ip).expect("Reading from stdin failed"); let server_ip = ip..
STLLIN
Positive