본문 바로가기

전체 글13

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.
AI와 대화하기 프롬프트 엔지니어링 관련한 책이 지역 전자도서관에 있는걸 봤다. 그걸 읽어본 다음에 이 글을 쓰면 더 좋았을텐데 귀찮아서 그러질 못했다! 그런데 프롬프트 엔지니어링이라는 걸 조금 찾아보면 결국 사람을 상대로 좋은 답변을 얻어내는 방법과 다른 게 별로 없어서 기본적으로는 대화라는 것 자체를 이해하는 것이 중요하다고 생각한다. 그래서 이번에는 내가 원하는 답을 얻기 위해 AI와 대화하는 방법을 공유하고 추가적으로 그 대화들에서 배웠던 지식을 모아보는 시간을 가지도록 하겠다! 1. @Autowired final HttpServletRequest, EntityManager? HttpServletRequest, EntityManager와 같은 빈도 스프링 컨테이너에서 관리된다. 이 빈들은 사용자 각각의 요청마다(.. 2023. 11. 1.