본문 바로가기

분류 전체보기14

클라우드 저장소 만들기 - 서버 디렉토리 구성 전략 구글 드라이브와 비슷한 웹 스토리지 서비스를 만드려 한다.서버 내부의 디렉토리 구조 설계에 대해 생각해보고, AI님과 나눈 대화를 바탕으로 간단히 정리해 보았다. 구글 드라이브와 같이 다수의 사용자가 존재할 때, 실제 파일은 서버에 어떻게 저장하는 것이 좋을까?어떤 서버를 저장소로 사용할 것인지(클라우드, 온프레미스 등...)는 논외로 한다.해당 파일 서버 내의 '디렉토리 구조'에 대해서 말하는 것. 일단 한 가지만 주제에 놓고 이야기해보자.첫째: 사용자의 UI를 그대로 따라가면 될까? 아니면 별도의 전략을 갖춰야 할까?사용자는 UI상에서 디렉토리를 만들고, 삭제하고, 위치를 옮길 수 있다.이 시각적인 경로를 서버 내에서도 그렇게 구현해야 할까?(사용자마다 루트 디렉토리 하나를 만들고, 내부 구조는 사용.. 2025. 2. 22.
CI/CD에서 Runner란? CI/CD에 대해서 잘 몰랐을 때도 강의를 보고 따라하는 식으로 적용한 적이 있다.그 때 모르고 넘어갔었던 것이 Self-hosted Runner라는 프로세스였다. 이번에 CI/CD를 공부하며 좀 더 자세히 알게 되었으니 정리해 보려 한다. 인프라 구성 요소 중 이해가 잘 가지 않는 것이 있을 때 문제상황을 정리하기 위해 내가 종종 하는 생각이 있는데, 다음과 같다.'그 프로세스가 작동하려면 컴퓨터가 필요할텐데, 그 프로세스는 어떤 컴퓨터에서 도는 거지?' 이다. Runner란 무엇이고, 어디에서 도는가? CI가 작동하기 위해서는 Git 원격 저장소의 commit과 같은 이벤트를 누군가가 감지하고, 지정된 스크립트를 실행해야 한다.즉 어떤 신호를 대기하고 있다가, 지정된 스크립트를 실행하는 주체가 'Ru.. 2025. 2. 18.
gitlab과 SSH - private key를 왜 못 찾니 스파게티코딩클럽에서 Docker를 사용한 CI/CD 강의를 듣던 중RSA key pair를 사용해서 gitlab 권한 인증을 하는 파트가 있었다. 1. 로컬 PC key pair 생성2. id_rsa 이름으로 생성된 private key의 파일명을 알아보기 쉽게 변경3. public key를 gitlab 계정에 등록4. SSH를 이용해 원격 Git 저장소 clone 강의를 듣고 위의 과정을 따라했지만, 권한 부족으로 clone이 실패했다.결론부터 말하면 원인은 2번에 있었다(강사는 파일명을 변경하지 않음). 강의를 들으면서도 이상했던 것이. ~./.ssh 디렉토리 내의 private key를 지정하고 git clone을 한 것도 아닌데, 어찌 원격 저장소의 public key와 로컬 PC의 private.. 2025. 2. 18.
RDB 테이블의 데이터를 그대로 ENUM으로 옮길 수 있을까? (아래의 예시 코드들은 실제 프로젝트의 내용을 간소화했습니다) 프로젝트를 진행하다 보면 간혹DB에 초기데이터를 먼저 올린 다음 백엔드 애플리케이션을 실행해야 할 때가 있다.  최근 진행한 프로젝트 내에서 근무시간표 관련 데이터를 다룰 일이 있었는데팀원이 작성한 다음과 같은 설계를 발견했다. '요일' 과 관련한 데이터를 미리 DB에 넣어놓고, 해당 데이터를 참조하게끔 하는 형식이었다.그 서비스는 다음과 같은 sql 스크립트의 실행을 필요로 했다. # 스크립트 예시. 'Calendar' 테이블에 요일 정보를 넣는다.insert into 'Calendar' values (..., '월'),(..., '화'),(..., '수'),(..., '목'),(..., '금');  'Calendar' 테이블과 연결된 자바.. 2023. 11. 29.