보람찬 코기의 개발자 블로그
article thumbnail
K3s 클러스터 MicroK8s로 마이그레이션 하기
Computer Science (CS) 2025. 2. 10. 23:42

작년에 학부 연구생 프로젝트를 진행하며 라즈베리 파이로 구축한 K3s 클러스터가 방 한켠을 차지하고 있었다. 사이드 프로젝트를 넓은 범주에서 활용하기도 하며 또한 내 방에 오랫동안 사용할 작은 홈 쿠버네티스 클러스터를 구축하고자 작성하게 되었다. https://boramchan-corgi.tistory.com/42 [K3s] Raspberry PI 4 에 K3s 설치하여 클러스터 구축하기이번에 RaspberryPI를 통한 클라우드 환경 구축 및 이 가이드에서는 Raspberry Pi 4 클러스터에 K3를 원활하게 설치하는 데 도움이 되는 커맨드 라인과 유용한 팁을 공유합니다. 본격적으로 설치 과정을boramchan-corgi.tistory.com 왜 K3s에서 MicroK8s를 선택했는가 ?K3s에서 M..

article thumbnail
[CS] AMQP 와 RabbitMQ 분석하기
Computer Science (CS) 2025. 1. 4. 01:17

RabbitMQ란? RabbitMQ는 AMQP 스펙을 구현한 대표적인 오픈 소스 메시지 브로커이다. 수신 받은 메시지를 큐에 저장하고, 이를 처리하는 시스템 간에 비동기적으로 메시지를 전달하는 역할을 한다. 주요 기능으로는 메세지를 많은 사용자들에게 전달하거나, 요청에 대한 처리 시간이 길때, 해당 요청을 다른 API에게 위임하고 빠른 응답을 할 때 많이 사용한다. 예를 들어, 사용자가 파일 업로드를 요청했을 때, 그 작업을 RabbitMQ 큐에 넣어두고 빠르게 사용자에게 "작업이 접수됨" 이라는 응답을 보낼 수 있다. 실제 아키텍쳐에서 업로드 작업은 백그라운드에서 처리되며, 이를 통해 빠른 응답과 비동기 처리가 가능하다. 앞서 RabbitMQ는 AMQP 스펙을 구현한 대표적인 오픈 소스라고 말하였다. ..

article thumbnail
[CS] 메시지 큐에 대해 알아보기 (Message Queue)
Computer Science (CS) 2025. 1. 1. 22:54

메시지 큐(Message Queue)메시지 큐는 애플리케이션 간의 비동기 데이터 통신을 지원하는 시스템으로, 데이터를 큐에 저장하고 처리할 수 있도록 도와준다. 특히, 대규모 분산 시스템에서 안정적이고 유연한 통신을 구현할 때 유용하다. 즉, 메시지 큐는 분산된 환경에서 프로세스나 프로그램의 시스템 간 데이터를 교환하기 위해 사용되는 통신 기법이다.  📌 주요 특징 비동기적 통신: 발신자와 수신자가 독립적으로 작업을 수행할 수 있도록 지원한다.중간 저장소 역할: 데이터를 큐(queue)에 임시로 저장하고, 소비자가 이를 처리한다.분산 시스템 필수 구성 요소: 작업 부하 분산, 내결함성, 확장성 제공.   주요 구성 요소 🔧메시지(Message): 큐에 저장되는 데이터 단위. JSON, XML, 텍스트..

article thumbnail
[DB] Database Project - 5 / PHP 연동 및 플랫폼 구현
Computer Science (CS) 2024. 3. 6. 13:29

2023 2학기 홍익대학교 데이터베이스 및 실습 과목 팀프로젝트 게시글입니다. 농수산물 거래 플랫폼 기능 구현 "repo" Log in & create account 기능 작동 파일 db-login.php logout.php auth-login-basic.php db-register.php auth-register-basic.php update_user.php encrypted_password.php 작동 흐름 index.php 접속 / 세션 유효 확인 auth-login-basic.php 실행 회원가입 버튼을 통한 db-register-basic.php 접속 회원 가입 정보 입력 후, update_user.php를 통한 database 회원 등록 encrypted_password.php를 통한 비밀번호..

article thumbnail
JWT(JSON Web Token) 이란?
Computer Science (CS) 2024. 1. 23. 22:34

JWT란? JSON Web Token 의 줄임말이다. JSON 객체에 인증에 필요한 정보들을 담은 후 비밀키로 서명한 (암호화 시킨) 토큰이다. 웹 토큰 기술의 한 종류로, 웹 애플리케이션 및 API에서 사용자 인증과 권한 부여를 관리하기 위한 도구이다. 간략한 작동 방식은 JWT(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별한다 그림으로 설명하자면, 유저가 로그인하면 서버에서는 해당 유저의 정보를 기반으로한 토큰을 생성하고, 이 토큰을 유저에게 전달한다. 유저는 이 토큰을 가지고 HTTP 헤더를 통해 서버에 요청을 할 때마다 토큰을 함께 전달함으로써 자신의 인증을 증명한다. 이를 통해, 서버는 각 요청에서 토큰을 확인하여 유저의 신원을 검증하며, 세션 관리의 번거로움 없이 간..

article thumbnail
[DB] 동시성 제어(Concurrency Control), 직렬화(Serialization)
Computer Science (CS) 2023. 11. 30. 12:46

동시성 제어 란? 동시성 제어는 여러 트랜잭션이 동시에 데이터베이스에 접근하고 수정하는 경우 발생할 수 있는 간섭과 충돌을 방지하며, 데이터의 일관성과 무결성을 유지하는 데 중요한 역할을 한다. 특히 은행, 증권사, 카드사와 같은 기업의 데이터베이스는 다수의 사용자가 거래를 수행하고 동시에 업데이트를 진행할 수 있기 때문에 이러한 환경에서는 동시성 제어가 필수적이다. 동시성 문제를 관리하기 위해 데이터베이스 시스템은 여러 기술과 기법을 사용한다. 예를 들면 트랜잭션 격리 수준, 락(lock) 메커니즘, 교착상태(데드락) 방지 등이 있다. 이러한 기술들은 동시성을 보장하면서도 성능을 최적화하는 데 도움을 준다. 동시성 제어 기법 제어 기법 설명 락킹 트랜잭션이 데이터 잠금 설정시 다른 트랜잭션은 해당 데이..

article thumbnail
[DB] 트랜잭션 : 데이터 처리의 기본 작업 단위
Computer Science (CS) 2023. 11. 30. 12:20

트랜잭션 특징 데이터베이스의 데이터 무결성이 보장되는 상태에서 DML 작업을 완수하기 위한 기본 작업 단위 트랜잭션을 통해 비정상 종료 및 실패에 대해 데이터 신뢰성과 일관성 보장 이론적 일반 상황에서는 "DML 실행과 실행에 대한 커밋/롤백 단계" 까지를 트랜잭션이라고 한다. 필드에서는 "SELECT 문으로 데이터를 조회하고 DML을 실행하여 종료하는 과정"까지 라고 한다. ACID 란? 개념 내용 원자성(Atomicity) 트랜잭션의 처리가 완전히 끝나지 않았을 경우에는 전혀 이루어지지 않은 것과 같아야 한다. 일관성(Consistency) 트랜잭션의 실행이 성공적으로 완료되면 DB는 모순 없이 일관성이 보존된 상태여야 한다 고립성(Isolation) 어떤 트랜잭션도 다른 트랜잭션의 부분적 실행 결과..

article thumbnail
[DB] Database Project - 4 / SQL Developer 설치 및 Oracle DB 구축
Computer Science (CS) 2023. 11. 28. 14:38

2023 2학기 홍익대학교 데이터베이스 및 실습 과목 팀프로젝트 게시글입니다. SQL Developer 설치 필자는 Apple 사의 MacBook air(M2) 을 사용하고 있다. 여러모로 이점도 많고 단점도 많은 arm기반 칩이다. 아래의 설치 방법은 Mac OS 기반으로 진행된다. 1. 주소를 통해 SQL Developer 를 다운받기 Mac OSX 용을 다운 받으면 된다. OS랑 버전이 맞지 않는 것인지 모르겠지만 커널 패닉 현상이 빈번하게 일어 났다. (추후 arm64) 버전도 테스트해보고 포스팅하겠습니다. https://www.oracle.com/database/sqldeveloper/technologies/download/ Oracle SQL Developer Downloads This arc..

article thumbnail
[DB] Database Project - 3 오라클 데이터베이스 Entity Relationship Diagram 설계
Computer Science (CS) 2023. 11. 28. 14:10

2023 2학기 홍익대학교 데이터베이스 및 실습 과목 팀프로젝트 게시글입니다. 1. PROJECT - WORKFLOW 우리 조는 '농수산물 거래 플랫폼' 주제 선정 이후, E-R 다이어그램을 설계 하기로 했다. 간략한 WorkFlow는 다음과 같다. 1. 사용자는 회원가입을 진행한다. 2. 구매하고 싶은 물건을 선택한다. 3. 선택한 물건의 여러 상점에서의 가격을 비교한다 4. 공공데이터의 평균가격을 참조하여 현명한 구매에 도움을 받는다. 5. 상점을 선택한 뒤 구매한다 또한 회원은 회원 계정 정보 페이지를 참고하여 회원이 구매한 품목의 이력을 조회할 수 있다. 2. Designing an “Entity Relationship Diagram” (ERD) 작동 흐름을 토대로 우리는 개체-관계 모델을 구상하..

article thumbnail
[DB] Database Project - 2 주제 선정
Computer Science (CS) 2023. 11. 28. 13:25

홍익대학교 데이터베이스 및 실습 과목 팀프로젝트 게시글입니다 팀 결성 이후, 우리는 프로젝트를 하기위해 주제 선정을 진행하였다. 전 인원이 다양한 의견을 내어 주었고 다음과 같다. 1. 아르바이트 구인 Web / App - 회원가입 ->[ 아르바이트 / 가게 ] 로 아르바이트 매칭 2. 당근마켓 Web / App - 회원가입 , 중고거래, 경매 제도를 통한 물건 사고팔기 3. 자동차 렌트 서비스 - 회원가입, 지도를 활용하여 특정 SPOT에 자동차 시간별 대여 시스템 1. 물건 찾기 - 회원가입해서 본인 방 구성, 핸드폰으로 물건 사진찍고 구성해놓은 방 카테고리에 넣어두고 물건 이름 검색이나 방 물건리스트를 확인해서 위치 확인 2. 자취생 요리 - 자취생들이 요리할때 쓰는 메인 재료에 따라 간단한 레시피..

article thumbnail
[DB] Database Project - 1
Computer Science (CS) 2023. 11. 16. 16:10

이번 Database 및 실습 수업에서 프로젝트를 진행하게 되었다. 팀장으로서 처음 팀프로젝트를 진행하게 되었다. 기존에는 팀원으로 참여하거나 , 연구연수생으로 말단에서 열심히 했지만 뭔가 해낼 수 있다는 마음이 생겼다. 팀 프로젝트에 앞서 몇 가지 환경을 생각하였다. 1. 협업 툴 / Github & Notion 최대 활용하기 프로젝트에 앞서 팀이 결성 된 이후 나는 코드 버전 관리 및 레파지토리를 통해 체계적으로 진행하고자 한다. Github의 Organization를 생성하여 관리하기로 했다. https://github.com/DataBase-501-Group2-Project-2023 DataBase-501-Group2-Project-2023 DataBase-501-Group2-Project-202..

article thumbnail
[어셈블리어] MIPS Programing assignment #1 review
Computer Science (CS) 2023. 1. 18. 19:03

대학교 2학년 2학기 '컴퓨터공학' 강의를 수강했고, 끝맺음도 잘하였다. 복습 겸 기초 언어인 어셈블리어를 복습하고자 작성하였다. 당신의 아래를 따라 밉스 프로그램을 작성해야 한다 당신의 프로그랩은 "Please, type a number"라는 문장으로 정수를 입력하라는 요청을 한다 입력된 정수에 10을 곱한다. 결과를 출력하라 (입력 값 * 10)에 "The result is xxx"의 형식으로 Result .data studentid: .asciiz "What is your Student ID: " # Problem Requirements-start idblank: .space 20 prompt: .asciiz "Please, type a number: " result: .asciiz "The res..