전체 글

𝙌. 컴퓨터 네트워크는 무엇인가요 컴퓨터 네트워크는컴퓨터 간에 서로 연결되어 데이터를 주고받을 수 있는 통신망입니다. 현대에는 월드 와이드 웹(www)이라는 네트워크 통신망에서 주로 HTTP를 사용해 데이터를 주고받습니다. 𝙌. 컴퓨터 네트워크에서 데이터를 전송하는 방식에 대해 설명해 주세요. 컴퓨터 네트워크에서 데이터를 전송하는 방식은 회선 교환 방식과 패킷 교환 방식이 있습니다. 회선 교환 방식은 일대일 네트워크 연결 회선을 미리 점유해서 데이터를 전송하는 방식입니다. 회선을 점유하는 동안은 다른 컴퓨터가 데이트를 전송할 수 없습니다. 패킷 교환 방식은 데이터를 패킷이라는 작은 단위로 나눠서 전송하는 방식입니다. 회선을 점유하지 않기 때문에 여러 컴퓨터들이 데이터를 전송할 때 회선을 효율적으로 사용할..
들어가며 우리 프로그램에서는 @RestControllerAdvice를 사용하여 모든 @RestController에서 발생하는 예외에 대하여 로그를 찍고 슬랙에 알림을 보내고 있다 대부분이 @RestControllerAdvice에서 잘 처리되나 몇몇 에러의 경우 스프링의 BasicErrorController 포맷으로 응답값이 왔다 따라서 우리 프로그램에서는 아래와 같이 두 가지 형태로 에러 메시지가 왔다 물론 모든 에러가 @RestControllerAdvice에서 처리된다면 가장 좋겠지만 BasicErrorController 에서 에러가 처리되는 경우에도 로그를 찍고 슬랙에 알림을 보내며, 오른쪽과 같은 에러 형식으로 보내주고 싶었다! 슬랙 에러 알림 관련 포스팅 https://seowoolog.tisto..
· DevOps
서버 에러 시 슬랙에 알림 보내기 우리 프로젝트에선 prod server와 dev server 두 가지를 사용하고 있는데 오류가 발생할 때마다 서버가 직접 ec2에 접속해서 에러 로그를 확인하는 방식이 매우 불편했다. 또한 클라이언트에서 오류가 발생했다고 서버에게 말을 해주기 전에 서버에서 발생하는 오류를 파악하고 싶었다 따라서 배포용 서버와 개발용 서버에서 발생하는 에러들을 아래처럼 두개의 채널에 전송하기로 하였다 또한 4XX, 5XX을 각각 클라이언트에러와 서버에러로 구분하여 알림을 보내기로 하였다 배포용 서버에서 발생하는 에러 -> # iluvit-prod-error 채널 개발용 서버에서 발생하는 에러 -> # iluvit-dev-error 채널 (1) 슬랙 웹 훅 설정 새 채널 생성에서 iluvi..
· DevOps
CI 구축 1. 환경 변수 설정 Settings -> Security ->Secretes and variables -> Actions 탭에 들어가 New repository secret 클릭 Application.yml(Properties) 등 gitignore 한 파일들을 작성해 줍니다. 우리 프로그램은 env.properties 에 환경변수 정보를 적은 후 gitignore 해주었기 때문에 ENV라는 이름으로 env.properties 내용을 복붙 해주었습니다. Name은 컨벤션에 맞게 대문자, 숫자와 언더스코어만 쓰자 2. workflow 구축 Github에 올라와있는 자바 프로젝트를 jar파일로 빌드하는 작업을 자동화할 것입니다. 프로젝트에서 /. github/workflows 폴더 안에 Depl..
· DevOps
Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) [DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 seowoolog.tistory.com Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (2) [DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (2) [DevO..
· DevOps
[DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 seowoolog.tistory.com 위 글에서 이어지는 내용입니다! Github Actions Workflow 작성 /. github/workflows/라는 경로는 반드시 지켜줘야 한다 # /.github/workflows/dev_deploy.yml name: Dev Deploy # release 브랜치로 push 되거나 pr이 날아가는 경우 workfl..
· DevOps
Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 빌드 및 테스트 되어 잘못된 코드가 공유되는 것을 방지한다 → 코드의 신뢰성을 높이는 개념 CD ( Continuous Deployment ) 프로젝트의 변경 사항을 가상 환경에서 자동으로 배포하는 것을 의미 변경 사항을 배포할 때 사용하는 파이프라인을 공유하여 번거로움을 없앨 수 있다 배포 플로우를 자동화하여 누구나 동일한 플로우로 배포할 수 있게 만들어주는 개념 Github Actions와 CodeDeploy를 사용한 CICD Github Actions란 ? gith..
· DevOps
EC2 ( Elastic Compute Cloud) 란 ❓ 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공 → AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것 후불제 PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다. 📌 정리 : EC2서비스는 AWS에서 비용, 성능, 용량면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있다 EC2를 사용해야 하는 이유 효율성 : EC2는 클릭 몇 번으로 서..
· Error
Error $ yarn run dev yarn run v1.22.18 $ nodemon [nodemon] 2.0.15 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): src\**\* .env [nodemon] watching extensions: js,ts,json [nodemon] starting `ts-node --transpile-only ./src/index.ts` ################################################ 🛡️ Server listening on port 🛡️ ################################################ URI must incl..
· Error
Error error: failed to push some refs to 'https://github.com/gitId/repositoryName.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwa..
dltjdn
devDiary