Nest JS 프로젝트 배포 자동화 하기 (1) - jenkins, webhook
·
개발
(2) 편 - https://whiporithm.tistory.com/104 (3) 편 - https://whiporithm.tistory.com/107 서론 본격적인 프로젝트를 앞서, 배포 자동화를 한 번 경험해보고 싶었다. 개발로도 벅찰 거 같아 배포에도 신경을 많이 쓰고 싶지 않기에, jenkins와 docker를 활용한 간단한 배포 자동화 구조를 만들어보려 한다. Nest 프로젝트를 배포한다고 했지만, 언어나 프레임워크가 중요한건 아니긴 하다. 어찌되었던, 아래는 내가 생각한 구조이다. 우선 코드를 push 하면 Webhook을 통해 이벤트를 보낸다 이후에 빌드서버에서 해당 코드를 가져와 테스팅 및 빌드를 진행하고, 도커 이미지화를 시킨다. 이미지 파일은 docker hub 에 올리고, 배포 서버..
[네이버 부스트캠프 8기] 멤버십 6-7 주차 회고
·
회고
조금은 늦은 후기를 작성해본다, 멤버십의 학습 스프린트도 슬... 끝나간다. 밑에서부터, 코딩을 하면서 종종 인터넷에서 바닥부터 구현해보라는 말을 본 적이 있다. 힘들긴해도 겪어보면, 자신이 사용하는 기술이나 개념을 확실히 이해할 수 있다고 주장하면서 말이다. 혹자는 잘 구축 (또는 추상화) 되어 있는 기술들의 원리를 이해하고 공부하는건 중요하지만 구현까지는 리소스 소모가 심하기에 권하지 않는 사람도 있었다. 부스트캠프 챌린지 과정의 커리큘럼을 보면 알겠지만, 기초적인 cs를 많이 접하고 구현하게 된다. 멤버십 또한 그 분위기를 이어가는 느낌인다. (일정이 챌린지 만큼 하드하다는 뜻은 아니다.) 두번째 학습 스프린트를 시작하고 나서 주어진 과제 또한 우리가 사용하는 웹 프레임워크의 근간이 되는 was와 ..
LV3 풍선 터트리기 (Python)
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 작은 값은 '한번만' 터트릴 수 있는게 문제의 요점이다. 내가 선택한 풍선이 살아남기 위해서, 내가 가장 작은값이 아니라면 언젠가 가장 작은값을 터트려야한다. 결국 작은값을 터트리는 선택지는 가장 작은 풍선을 만났을때만 사용할 수 있는 것이다. (가장 작은 값을 가진 풍선은 무조건 살아남을 수 있다.) 만약 내가 가장 작은값 왼쪽에 존재한다고 해보자, 내 오른쪽은 가장 작은 값의 풍선이..
[네이버 부스트캠프 8기] 멤버십 5주차 회고
·
회고
4주차는 어디가고 왜 5주차인가, 싶지만.. 4주차에 솔직히 별로 쓸 내용이 없어서 한 주를 건너 뛰었다. 멤버십은 4주간의 학습 스프린트를 두번 수행하는데, 첫번째 스프린트는 끝이났고, 두번째 스프린트 첫주를 끝냈다. 첫번째 스프린트가 끝나고 다음 스프린트까지 1주간의 휴식을 갖기에 시간상으로는 6주차가 맞을수도 있지만, 실질적으로 수행한 주차만 따지면 5주차니까 5주차라고 작성하겠다. 아, 특별한 점은 웹 기준으로 두번째 스프린트는 프론트와 백을 나누어서 진행한다. 5주차 또한 추석 연휴와 겹쳐서 실질적인 개발기간은 길지 않았지만 특별한 점이라면 "페어 프로그래밍" 을 진행했다는 점이다. 그래서 이번 회고에서는 짧게나마 경험했던 페어 프로그래밍에 대한 경험을 적어보려 한다. 시작과 막막함 페어 프로그..
LV2 괄호 변환 (Java)
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 사실 이 문제는 하라는대로 구현만 하면 슉슉 풀리는 문제이다. 단 지문이.. 이해하기 조금 난해하다는게 문제다. 슈도 코드를 작성하면 조금 더 쉽지 않을까 생각한다. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수..
[쉘 스크립트] for / while 문
·
쉘 스크립트
for문 조건문 다음에는 반복문이다, for문의 기본적인 형태는 두가지가 존재한다. 첫번째로는 파이썬과 같이 in 키워드를 사용하여 표현하는 것이다. for 변수 in [ 범위(리스트, 또는 배열, 그 외의 묶음 등) ] do 수행문 done 어떤것을 순회할지 in 뒤에 명시해준다 이후 do안에 수행문을 작성하고 done으로 for문의 끝을 알려준다. 두번째로는 C나Java에서 for문을 표현하는 고전적인 형태이다. for ((변수=초기값; 조건식; 증가값)) do 수행문 done 일반적으로 아는 for문의 형태로 표현한다. for문 예제 1) in 을 사용한 기본 사용법 #!/bin/bash for num in 1 2 3 do echo $num done #!/bin/bash numbers="1 2 3"..
[쉘 스크립트] if문 / switch-case문
·
쉘 스크립트
if 문 쉘 스크립트에서도 프로그래밍에서 일반적으로 사용하는 if문을 사용할 수 있다. 문법은 아래와 같다. if [ 조건식 ] then 수행문 elif [ 조건식 ] then 수행문 else 수행문 fi 시작은 if로, 그 끝은 fi로 표기한다. 조건은 대괄호 안에 넣으며, 대괄호와 조건식 사이에는 한 칸의 공백을 두어야 한다. elif 나 else는 필요에 따라 작성하면 된다. 1) if [ $변수 연산자 $변수 ] 가장 일반적인 형태로, 변수끼리 비교해서 결괏값에 따라 분기를 준다. #!/bin/bash val1 = 10 val2 = 20 if [ $val1 = $val2 ] # 비교시에 '==' 가 아니라 '=' 임을 유의하자. then echo True else echo False fi 2) i..
[쉘 스크립트] 변수와 함수 기초 문법
·
쉘 스크립트
서버를 배포하거나 할 때 쉘 스크립트를 사용할 일이 자주 있더라. 그럴때마다 코드를 항상 어디서 가져와서 사용하는데.. 사실 이해를 못하고 사용한적이 대부분이었다. 뿐만 아니라 환경설정, 자동화 등에 무궁무진하게 쓰일 수 있는 쉘 스크립트이기 때문에 공부할겸 책을 구매했다! https://product.kyobobook.co.kr/detail/S000001810353 처음 배우는 셸 스크립트 | 장현정 - 교보문고 처음 배우는 셸 스크립트 | product.kyobobook.co.kr 실행환경 - VMWare (Ubuntu 22.04.3) - Bash Shell 파일 생성 쉘 스크립트 파일의 확장자는 .sh 이다. 또한 파일의 시작에는 아래의 코드로 해당 파일이 쉘 스크립트 파일인것을 알려줘야 한다. #..
[쉘 스크립트] Syntax error: "(" unexpected 에러
·
쉘 스크립트
쉘 스크립트의 function을 사용하는데 Syntax error: "(" unexpected 와 같은 에러가 발생했다. 알고보니 우분투는 기본적으로 bash 쉘이 아니라 dash 쉘로 설정되어 있어서 발생한 문제였다. 해결방법은 sudo dpkg-reconfigure dash 를 실행하고 나오는 화면에서 No를 선택하면 bash 쉘로 변경이 완료된다. *출처* https://faq.hostway.co.kr/Linux_ETC/7267 Linux ETC - 우분투 기본 쉘 dash 에서 bash로 변경하기 우분투의 기본 쉘은 bash가 아닌 dash입니다. 하지만 개발용 shell script들 중 bash 용으로 작성된 것들이 많으며 이로 인해 호환성 문제로 작업 간 문제가 발생하는 경우가 있습니다. $..
LV2 스킬트리
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/49993?language=python3# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 tech라는 딕셔너리를 선언했고, 키는 스킬이고 밸류는 그 스킬을 배우기 위한 직전 스킬을 넣어주었다. 따라서 만약 A스킬이 skill에 있고, 그 스킬을 배우기 위해서 무엇을 배워야하는지 tech를 통해 알 수 있다. (1부터 넣은 이유는 첫 스킬은 선행스킬이 없기 때문에) 이후 skill_trees 를 순회한다. 한 스킬셋마다 가능한지 여부를 따져주기..