[Tistory] Docker와 Jenkins를 이용해서 CI/CD를 구축해보자

개인 프로젝트를 진행하면서 프론트는 Vercel로 배포하여 자동배포와 https를 적용하였는데, 서버는 아직 자동배포 환경을 만들어놓지 않아서 이번에 Jenkins로 구축을 하였습니다. Jenkins 란? Jenkins는 지속적인 통합 및 지속적인 배포 (CI/CD)를 지원하는 오픈 소스 자동화 도구입니다. Jenkins는 자바 기반 웹 애플리케이션이며, 빌드, 테스트, 배포를 자동화해 줍니다. CI / CD 란? CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 합니다. CI(지속적 통합)은 코드 변경 사항을 공유 소스 코드 리포지..

[Tistory] [OS] 리눅스 파일 시스템

파일 시스템이란?`파일`: 데이터, 프로그램 등을 담는 그릇`파일 시스템`: 그 그릇들을 관리하는 시스템파일에 이름을 붙이고, 저장/탐색을 위해 파일을 어디에 위치시킬 것인지 나타내는 체계파일들이 디스크 상에서 구성되는 방식파일 시스템은 파일들을 관리할 정보가 필요하다. ➡️ `메타데이터`파일의 이름, 확장자, 권한 정보 등 리눅스의 파일 시스템EXT(EXtended File System)리누스는 minix 플랫폼의 불편함을 해결하기 위해 새로운 운영체제인 `리눅스`를 만들었다.Minux 플랫폼 위에서 개발했기 때문에 Minux 파일 시스템을 사용했는데, Minux 파일 시스템을 확장하여 `extfs(Extended File System)`이라는 파일 시스템을 만들었다.성능 향상, 확장성, 기능을 추가하..

[Tistory] 자바스크립트 var/let/const 차이, 전역변수/지역변수

특성varletconst  Scope 스코프함수함수/블록함수/블록Hoisting 호이스팅O 초기화 undefinedX 초기화 전 접근 불가X 초기화 전 접근 불가재선언OXX재할당OOX객체/배열 속성 변경OOO  선언 방식 종류name = “just name |”;var varName = “var|”;let letName = “let|”;const conName = “const|”;console.log(name, varName, letName, conName); // 출력 결과 : just name | var| let| const|  Var중복 선언 가능, 재할당 가능let중복 선언 불가능, 재할당 가능const 중복 선언 불가능, 재할당 불가능  Scope 스코프  스코프는 “범위”라는 뜻을 가지고 있다..

[Tistory] Y-3와 아디다스의 합작 콜라보 (일본 축구 국가대표 유니폼), 요지 야마모토

어마어마한 콜라보 작품이 나왔습니다.일본 축구 국가대표팀의 유니폼이 Y-3와 협업하게 된 배경과 요지 야마모토의 프로필에 대해 설명해 드리겠습니다. Y-3는 일본의 유명 디자이너 요지 야마모토와 아디다스의 협업 브랜드입니다[2][4]. 아디다스가 일본 축구협회의 공식 후원사이기 때문에, 이러한 연결고리를 통해 Y-3가 일본 축구 국가대표팀의 유니폼을 디자인하게 되었습니다. 디자인은 요지 야마모토의 유니크한 디자인 철학이 담겨 있는 홈, 어웨이 유니폼으로 제작되었으며 이번 파리올림픽에서도 유니폼을 입게됩니다.    요지 야마모토의 주요 프로필과 업적: 1. 일본의 세계적인 패션 디자이너 2. 아방가르드한 스타일로 유명하며, 주로 블랙 컬러를 사용한 디자인으로 알려져 있음 3. 1981년 파리 컬렉션에 데뷔..

[Tistory] 색소침착된 무릎 착색크림 꾸준히 써서 하얗게 만든 후기

저는 어렸을 때부터 유독 무릎과 팔꿈치가 까만 편이라 스트레스가 많았어요. 우선 착색의 원인과 관련 정보를 찾은 뒤 홈케어를 시작해보았는데요. 착색이 제일 심했던 무릎과 팔꿈치가 확실히 옅어지고 전체적으로 피부톤이 균일해지면서 환해지기까지해서 정말 만족스러워요. 안녕하세요. 여름이 제대로 왔는지 햇볕이 점점 뜨거워지고 있네요. 저는 요즘 점점 더 얇아지는 옷에 착색된 무릎과 팔꿈치가 너무 어두워 보이진 않을까, 지저분해보이진 않을까 걱정이 이만저만이 아닌데요.   착색 관리를 하기 전과 후 비교 사진이에요. 착색된 피부를 사진으로 남기기도 싫었지만 저와 같은 분들이  어딘가에 또 계실 테니 그분들께 도움이 되길 바라는 마음으로 남겨봅니다. 사실 저는 어렸을 때부터 유독 무릎과 팔꿈치가 까만 편이었어요. ..

[Tistory] TypeOrm) typeorm-transactional 라이브러리로 transaction 관리하기

TransactionNotStartedErrortypeORM에서 typeorm-transactional 라이브러리로 transaction 관리하기  문제사항 :transaction 처리 안되는 오류 발생. rollback 이 되어야하는 상황에서 ‘TransactionNotStartedError’가 발생하고 서버가 먹통됨. 그러나 transaction은 확실하게 start 되었고, rollback 될 때만 연결이 유실됨.즉 정확한 이유는 모르겠지만, interceptor로 transaction 관리가 시작된후, error가 발생하면 어딘가에서 QueryRunner인스턴스가 종료되어 독릭적인 연결을 사용하지 못하게 되는것으로 보임  TransactionNotStartedError 오류 해석 :“Rollbac..

[Tistory] [게임수학] 어파인 공간(Affine space)

어파인 공간?벡터공간에서는 벡터가 어디에 위치해 있던지 크기와 방향만 같다면 모두 같은 벡터로 취급한다. 따라서, 벡터 공간에서는 위의 여러 벡터가 엄연히 다른 벡터임에도 불구하고 같은 벡터로 취급될 것이다. 결국 벡터 공간에서는 위치를 중시하는 기하학을 표현하기에 무리가 있다.이를 극복하고자 고안된 것이 바로 어파인 공간이다.어파인 공간에서는 벡터에 위치표현을 위한 점을 추가하여 해당 벡터의 크기, 방향 뿐만 아니라 위치까지도 표현할 수 있게 된다.벡터공간 + 위치이동이 가능한 부분 공간을 어파인 공간(Affine space)이라고 부른다.어파인 공간에서의 이동 변환임의의 벡터 (x,y)를 지정한 크기(a,b)만큼 이동시키는 기능은 행렬의 덧셈으로 구할 수 있다. ..

[Tistory] 이전 커밋 메세지 변경

1. 최신 커밋 메세지 변경가장 최근 커밋 메시지 다시 쓰기git commit –amend 명령을 사용하여 가장 최근의 커밋 메시지를 변경할 수 있습니다.Git에서 커밋 메시지의 텍스트는 커밋의 일부입니다. 커밋 메시지를 변경하면 커밋 ID(즉, 커밋 이름을 지정하는 SHA1 체크섬)가 변경됩니다. 실제로 이전 커밋을 대체하는 새 커밋을 만드는 것입니다.  2. 이전 커밋 메세지 변경이전 또는 여러 커밋 메시지 수정이미 GitHub.com에 커밋을 푸시한 경우 수정된 메시지와 함께 커밋을 강제로 푸시해야 합니다.리포지토리의 기록이 변경되므로 강제 푸시를 사용하지 않을 것을 강력히 권장합니다. 강제 푸시를 사용할 경우 이미 리포지토리를 복제한 사용자는 로컬 기록을 수동으로 수정해야 합니다. 자세한 내용은..

[Tistory] Springboot3 + Swagger + Jwt (3)

Swagger 초기 셋팅2024.06.20 – [BE/Java] – Springboot3 + Swagger + Jwt (2) Springboot3 + Swagger + Jwt (2)프로젝트 진행 이유 및 개발 환경2024.06.20 – [BE/Java] – Springboot3 + Swagger + Jwt (1)   Swagger란?REST API 개발을 진행하는경우 Restful한 서비스를 만들때  @RestController를 읽어서 API 문서를 자동으로 생성해tistory.slowtuttle.co.kr   진행할 내용1. JPA 셋팅2. SpringSecurity 셋팅3. DB 셋팅4. 사용자 Entity 생성5. 단순 회원가입 테스트      (swagger, security, db, jpa 이..

[Tistory] Docker로 AWS EC2 배포하기 (미완)

Docker컨테이너 기반의 오픈소스 가상화 플랫폼Container컨테이너는 독립된 가상 공간에서 프로세스가 동작하는 기술하나의 서버에 여러개의 컨테이너를 띄울 수 있음다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화 할 수 있음컨테이너마다 다른 프로그램, 다른 버전을 적용할 수 있으며 각자 독립적으로 실행할 수도, 서로 연동해서 사용할 수도 있음VM(Virtual Machine)과 비슷한 개념이지만, VM은 각각에 OS를 올려서 사용해야 하고 자원을 할당해서 사용하는 반면, 컨테이너 기반 가상화 방식은 Host OS와 Docker 엔진 위에서 바로 동작하기 때문에 성능이 좋고 필요한 만큼의 자원만 사용해서 사용함Docker Image도커 이미..