728x90
Temp
62

[AWS] EC2(Public Subnet)와 RDS(Private Subnet) 설정

일반적으로 Amazon EC2에 Application을 배포하고 EC2를 통해 RDS에 접근한다. 이때 RDS는 Public이 아니라 Private으로 설정하여 외부에서 접근할 수 없도록 해줄 것이다. 그러기 위해서는 먼저 VPC를 생성하고 Public Subnet과 Private Subnet을 생성해야한다. 그리고 Public Subnet은 IGW(Internet Gateway)를 통해 외부와의 통신을 하기 때문에 Router Table에 IGW로부터 들어오는 요청에 대한 접근을 허용해주도록 설정한다. 반면 Private Subnet은 IGW가 아닌 EC2가 속해있는 Public Subnet에 대한 요청에 대한 접근을 허용해주도록 설정해준다. VPC (Virtual Private Cloud) 생성 VP..

Temp 2024.03.27

Git과 Slack 연동으로 알림 받기

1. 워크스페이스 생성 2. 알람을 받을 채널 생성 3. GitHub 앱 추가 slack app directory에서 GitHub을 검색하여 추가 또는 앱 추가로 추가 4. GitHub 계정 연결 5. GitHub Repository 연결 6. GitActions 연동 앱 추가 https://api.slack.com/apps GitHub에 Webhook URL 등록 workflows 추가 위처럼 repo에 직접 들어가서 추가하거나 ide 또는 terminal을 사용하여 추가하고 push 한다. name: Slack Notification on: pull_request: branches: - '**' jobs: build: runs-on: ubuntu-latest steps: - name: action-s..

Temp 2024.02.16

[CodeDeploy] 배포시 저장되는 파일 개수를 지정하여 용량 절약

CodeDeploy 에이전트는 배포 후 EC2 인스턴스에 배포 파일을 저장한다. 이때 배포 파일은 일반적으로 /opt/codedeploy-agent/deployment-root에 저장된다. cd /opt/codedeploy-agent/deployment-root 위에서 ./e9861313-aeda-4ed9-9615-9db2ad17925f가 이에 해당된다. e9861313-aeda-4ed9-9615-9db2ad17925f는 Deployment Group ID를 의미하며 해당 디렉토리에는 각 배포마다 저장되는 하위 디렉토리가 존재한다. 각 디렉토리명은 Deployment ID를 의미한다. 그리고 위 5개는 최근 배포를 완료한 5개의 Deployment ID에 해당하는 것을 확인할 수 있다. 각 디렉토리에는 ..

Temp 2024.01.02

신입 개발자에게 자료구조와 알고리즘이 중요한 이유

DSA(Data Structure and Algorithms)는 소프트웨어 구현과 채용 과정에서 중요한 역할을 한다. 개발자는 기업에서 맞닥뜨린 문제들을 해결하기위해 올바른 결정을 내려야한다. 예를 들어 자동차 정비사가 자동차를 수리하기위해서 올바른 도구가 필요한 것처럼 개발자는 소프트웨어가 제대로 실행되도록 올바른 도구(DSA)가 필요하다. 구글, 마이크로소프트, 메타, 아마존과 같은 기업들이 다른 기업들보다 급여가 높은 이유가 뭘까? 이런 기업들은 구현하는 시간을 대충 20~20%만 할애한다. 대부분의 시간은 최적의 알고리즘으로 설계하여 기업의 자원을 절약하는데 사용된다. 이것이 기업이 DSA를 중요하게 생각하는 이유이다. 현실에서의 복잡한 문제들을 해결하기위해서도 DSA는 중요하게 작용한다. 몇 가..

Temp 2023.11.08

백엔드 스터디 계획

코딩을 공부하는 방법에대해서 파이썬 창시자인 Guido van Rossum(귀도 반 로섬)과 Mojo, Swift 등 여러 프로젝트의 공동 창립자인 Chris Lattner(크리스 래트너)는 Go build something 이라고 말한다. 무언가를 만들고 실제로 사용하면서 스스로 목표를 설정해나간다면 그 과정에서 배울 수 있고 성취감 또한 느낄 수 있다는 것이다. 그것이 해결하고 싶은 엄청난 문제일 수도 있고 비현실적일 수도 있지만 동기 부여에 강력한 원동력이 된다고 한다. 실제로 백엔드 개발자가 되겠다고 결정했을때 Java의 기본 문법과 Spring 프레임워크의 기본을 학습하고 개인 프로젝트를 진행했다. 그리고 그 과정에서 내가 필요한 부분을 추가로 학습하며 습득하고 적용함으로써 성취감을 느낄 수 ..

Temp 2023.11.01

백엔드 커리어 로드맵 - 나는 어떤 백엔드 개발자가 되고 싶을까?

백엔드 커리어 로드맵 https://roadmap.sh/backend 나는 어떤 백엔드 개발자가 되고 싶을까? 타자공헌(他者貢獻) 심리학자인 아들러는 타자공헌(他者貢獻)의 삶을 강조했다. 결론만 얘기하면 '타자공헌'이란 자신을 위해 열심히 일을 하면 결국에는 타인을 위해 하는 일이 된다는 뜻으로 해석할 수 있다. 나는 내가 필요한 기능과 서비스를 만들고 싶다는 생각을 항상 가지고 있다. 또한 언젠가 내가 필요했던 것들이 타인들에게도 도움이 될 것이라는 생각도 가지고 있다. 이처럼 자신을 위해 하는 일과 타인을 위해 하는 일은 크게 다르지 않다고 생각한다. 마찬가지로 사용자들에게 좋은 서비스를 할 수 있게하는 것은 자신에게 좋은 서비스라고 느끼게하는 것이라고 할 수 있다. 이렇듯 나는 내가 사용자가 될 수..

Temp 2023.10.23

프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유

프론트엔드 (Frontend) 프론트엔드는 사용자와 직접 상호작용하는 부분으로, 웹 애플리케이션 또는 웹 사이트의 시각적 부분을 담당한다. 특징 사용자 인터페이스 (UI): 프론트엔드는 웹 페이지의 레이아웃, 디자인, 색상, 텍스트, 이미지, 버튼 등 사용자가 보고 상호작용하는 모든 것을 처리한다. 웹 브라우저에서 실행: 프론트엔드 코드는 주로 HTML, CSS, JavaScript를 사용하며, 이 코드는 클라이언트 측에서 웹 브라우저에서 실행된다. 사용자 경험 개선: 프론트엔드는 웹 애플리케이션의 사용자 경험을 향상시키는 역할을 한다. 사용자가 쉽게 탐색하고 상호작용할 수 있도록 설계되어야 한다. 주요 업무 사용자 인터페이스 (UI) 개발 웹 페이지 레이아웃, 디자인 및 스타일링 작업을 수행하여 사용자..

Temp 2023.10.19

[Python] 구조화된 데이터를 효율적으로 저장하고 전달하기위한 Protocol Buffers

Protocol Buffers? Protocol Buffers 는 구조화된 데이터를 Serialization 하는 도구이다. XML, JSON 과 같은 텍스트 기반의 Serialization 방식을 생각할 수 있지만 Protocol Buffers는 더 작고 빠르다고 한다. 다른 방법과 한계 Python pickling: 스키마 변경에 대해서 잘 처리하지 못하고 응용 프로그램과의 데이터 공유가 잘 이루어지지 않는다. 문자열 인코딩: 아주 간단한 데이터에 대해 적합하다. XML: 메모리를 많이 잡아먹는 것으로 알려져있으며 응용 프로그램의 성능을 저하시킬 수 있다. 또한 XML DOM 트리가 복잡하다. Protocol Format 정의 Protocol Buffers 의 기본 개념은 "message" 라고 하는..

Temp 2023.07.30

[Intellij] autocompletion replacing the subsequent word

주로 Tab을 사용하여 autocompletion을 하는데 원래 위치에있던 문자를 replace한다. replace되지 않도록 설정을 바꿔보겠다. Preferences(Settings) > Keymap > Search "Choose" Choose Lookup Item: Only Add Choose Lookup Item Replace: Replace word 위 사진처럼 Choose Lookup Item의 Shortcut을 Tab으로 바꾸어 더 이상 replace 되지 않도록 해주었다. 반대로 Choose Lookup Item Replace를 Enter로 바꾸어주었다.

Temp 2023.06.06
728x90