전체 글 12

echo 응답 가공하기

새로운 문자열 생성 -> 문자열 가공 -> 응답 반환- Valkey 입력값 저장Valkey는 클라이언트가 명령어를 입력하면 내부적으로 이를 파싱한 뒤 client *c 구조체에 저장한다.echo abc를 입력하면 내부적으로는c->argv[0] = "echo"c->argv[1] = "abc" 형태로 저장한다. 즉 command 함수는 c->argv[] 배열을 통해 사용자가 입력한 값을 읽는다. - sdsValkey는 일반 C 문자열(char *) 대신 대부분 sds 구조를 사용한다.sds는 문자열 길이와 메모리 정보를 함께 관리하는 문자열 구조이다.일반 C 문자열은 길이를 구하기 위해 strlen()으로 끝까지 탐색해야 한다.sds는 문자열 길이를 header에 저장하고 있어 바로 길이를 확인할 수 있다...

컴공 2026.05.23

Valkey 이해

Valkey 서버가 이해하고 실행할 수 있는 새 명령어를 추가하는 과정'입력한 명령어 -> 서버가 찾음 -> 연결된 함수 실행 -> 결과 반환' * Valkey 명령어 처리 흐름Valkey는 클라이언트로부터 명령어를 입력받으면 다음과 같이 처리한다.클라이언트 입력 -> 명령어 Lookup -> command table 검색 -> 연결된 함수 실행 -> 결과 반환 실제 Valkey 내부에서는 c -> cmd -> proc(c)를 통해 실제 명령 함수가 실행된다. 1. server.c 수정// 입력받은 문자열을 그대로 반환하는 구조void echoYejinCommand(client *c) { addReplyBulk(c, c->argv[1]);} 2. server.h 선언 추가// 처음에 선언을 안 해서..

컴공 2026.05.15

Redis RESP 2,3 프로토콜 실습하기

Redis란?: 메모리 기반의 초고속 데이터 저장소.: 일반적인 데이터베이스는 데이터를 하드디스크에 저장하기 때문에 조회 속도가 상대적으로 느리다.반면에 Redis는 데이터를 RAM(메모리)에 저장하기 떄문에 속도가 훨씬 빠르다.MySQL : 요청 -> 하드디스크에서 읽기 -> 응답 (느림)Redis : 요청 -> 메모리에서 읽기 -> 응답 (빠름) Redis 쓰이는 곳- 캐싱 : 자주 조회되는 데이터를 미리 저장해서 DB 부하 감소- 세션 관리 : 로그인 상태 임시 저장- 랭킹 시스템 : Sorted Set으로 실시간 순위 관리- 메시지 큐 : 서버 간 데이터 전달 Redis의 단점: 메모리에 저장하기 때문에 서버를 끄면 데이터가 사라집니다. 그래서 영구 보전이 필요한 데이터는 MySQL같은 DB에 ..

컴공 2026.05.02

git commit 과정

1. 실습 폴더 생성 및 git 초기화mkdir git-test //git-test 폴더 만들기cd git-testgit init //git-test 폴더 안에 .git 폴더 생성 2. 파일 생성 후 git addecho "hello" > 1.txt // 1.txt 파일 생성git add 1.txt // 파일 내용을 객체로 생성 -> Blob 객체find .git/objects -type f // 실행결과 : .git/objects/ce/013625030ba8dba906f756967f9e9ca394464a- git은 객체를 저장할 때 전체 해시값을 그대로 파일명으로 사용하는 것이 아니다. 앞의 2글자를 디렉터리로 사용하고 나머지 해시값을 파일명으로 나누어 저장한다. 이를 통해 git이 파일 내용을 객..

컴공 2026.04.24

DB 설계

1. 엔티티 설계시 명명 규칙- PK테이블마다 id로 통일prefix를 붙이지 않고 간결하ex: user.id, product.id, schedule.idSELECT u.id, u.nameFROM user u; - FK참조 테이블명을 prefix로 붙여 작성ex: user_id, saller_id, product_id- 컬럼명 규칙컬럼명에는 테이블을 붙이지 않음ex: title, price, created_at테이블이 다른 컬럼과 구분이 필요하면 별칭 사용- 시간 관련날짜만 : *_date ( ex: birthd_date, join_date )시간만 : *_time ( ex: alarm_time )날짜 + 시간 : *_at ( ex: creaged_at, start_at, updated_at)TIMEST..

프로젝트/PlaNa 2025.06.18

Vue 구조

*Vue MVVM 패턴: 양방향 바인딩을 통해 화면과 데이터가 자동으로 연결 => 데이터가 바뀌면 화면이 자동으로 바뀌고, 사용자가 입력한 값은 데이터에 자동으로 반영된다.: 사용자가 직접 DOM을 관리하지 않고, vue가 알아서 viewmodel을 통해 관리 1. 모델 [ 데이터 저장소 ]: JS 객체 (상태, 데이터) data()에 정의된 값들이 모델에 해당 2. 뷰 (View) [ 화면]: DOM (HTML 문서를 트리 구조로 표현한 객체) 사용자가 보는 화면 3. 뷰 모델: 데이터 바인딩 + DOM 리스너를 통해 view와 model을 연결해주는 역할: DOM 리스너는 사용자의 입력(클릭, 입력 등) 같은 이벤트를 감지해서 처리.  데이터 바인딩은 모델의 데이터가 바뀌면 DOM에 자동으로 반영하도..

컴공/Vue 2025.03.20

반드시 알고 넘어가야 할 웹 기술 기초편

* 클라이언트가 서버로 요청을 할 때 보내는 것 : HTTP 요청 메시지 (HTTP Request Message)  서버가 클라이언트로 응답을 보내는 것 : HTTP 응답 메시지 (HTTP Response Message) * 웹의 3대 요소- HTTP : 웹 서버와 웹 클라이언트 간에 통신을 할 수 있도록 지원해준다.- URL : 웹 클라이언트가 웹 서버로 자원을 요청할 수 있게 해준다.- HTML : 웹 클라이언트가 웹 서버로 URL을 통한 자원 요청 후 HTML가 담긴 응답을 받으며,               웹 클라인언트 프로그램인 웹 브라우저가 이를 해석하여 사용자에게 구조화된 인터페이스를 출력시켜 준다. * URL 구조 분석 http :// www.test.co.kr  / images / bac..

컴공/Http 2025.02.17

객체

[클래스를 먼저 생성 -> 클래스를 통해 객체를 만듦. -> 객체를 만들면, 안에 데이터 삽입> 객체란? :클래스에서 정의된 내용대로 new 연산자를 통해 메모리 영역에 생성된 것. 데이터와 기능을 포함한 모든 것. => 익명클래스(클래스를 따로 정의하지 않고 일시적으로 생성되는 객체), 배열 등       클래스란?:객체의 특성에 대한 정의를 한 것으로 캡슐화를 통해 기능을 포함한 개념, 사물이나 개념의 공통 요소를 추상화하여 정의 추상화란?:유연성을 확보하기 위해 구체적인 것은 제거한다는 의미.프로그램에서 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정 인스턴스란?:항상 클래스에서 만들어진 객체를 의미. 특정 클래스(Class)로부터 생성된 객체를 더 구체적으로 인스턴스라고 한다. 즉, 모..

컴공/Java 2024.10.27

AICE ex3

B 사 선박 입찰에 참여하려고 하고 있습니다. 코로나 19 로 위축되었던 물동량이 다시 살아나면서 선주들의 신규 선박에 대한 필요성이 늘어남에 따라 신규 선박 입찰 기회가 많아지고 있는 요즘입니다. 선박수주 가능성을 예측할 수 있으면, 해당 선박 입찰을 따내도록 더욱 집중적으로 노력할 수 있어 AI 기술을 활용하여 수주가능 여부를 예측하고자 합니다. 본 인증평가는 선박 수주관련 대내외 데이터를 분석하고 AI 모델링을 통해 선박의 수주 여부를 예측하는 문제로 구성되어 있습니다. [데이터 컬럼 설명 (데이터 파일명: A0003MF.csv) ] ⚫ 유사선박수주경험: yes/no 유형으로 구분 ⚫ 국제유가: 선박 수주 당시의 국제 유가 ⚫ 환율: 선박 수주 당시의 환율 ⚫ 선주사: 선주사 종류 ⚫ 선종: 선박의..

자격증/AICE 2024.07.12