2023/05 10

EC2란 무엇인가

EC2가 무엇인지 대충은 알고 있는데 맞는건지 확신이 없어서 알아보기로 했다. 정리한다고 머리에 다 들어오는 것은 아니지만 한번 정리해두면 다음에 까먹었을때 다시 보면 기억에 도움이 되서 대충이나마 작성한다. EC2란? EC2 에 대해서 AWS에서는 다음과 같이 설명했다. Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. Amazon EC2에서는 ..

DevOps 2023.05.27

전략 패턴 (Strategy Pattern)

전략 패턴 (Strategy Pattern) 전략 패턴은 객체가 특정 동작 또는 알고리즘을 실행할 때 유연성을 제공하는 디자인 패턴입니다. 이 패턴은 동적으로 알고리즘을 교체하거나 다양한 알고리즘을 선택할 수 있는 구조를 제공합니다. 전략 패턴은 알고리즘의 구현을 캡슐화하고, 알고리즘을 사용하는 객체와 독립적으로 변경할 수 있도록 합니다. 특징 - 유연한 알고리즘 교체 전략 패턴은 알고리즘을 독립적으로 정의하고, 클라이언트에서 알고리즘을 교체할 수 있도록 합니다. 이는 실행 중에 다른 전략으로 쉽게 전환할 수 있으며, 알고리즘의 변경이 클라이언트 코드에 영향을 주지 않습니다. - 객체 간 결합도 감소 전략 패턴은 알고리즘을 전략 객체로 캡슐화하여 클라이언트와 알고리즘 간의 결합도를 낮춥니다. 클라이언트는..

Architecture 2023.05.16

AWS EKS 클러스터에 접속해서 특정 작업 또는 정보를 확인하기

글을 작성하게 된 계기 회사에서 개발 도중에 stage 환경에 띄워져있는 특정 pod이 5분간격으로 터졌다. dev에서는 잘 되는데 stage에서만 발생하는 문제였고, 문제가 발생하는 RPC도 로컬에서 연결해서 확인해봤을때는 정상적으로 동작했다. 인프라쪽에서 최근에 보안관련 설정을 했었는데 그때 뭔가 잘못 건드려서 발생하는 문제같았지만 확실하게 하고싶어서 옆자리 사수님께도 얘기해 봤다. 이때 사수가 "eks 에 접속해서 확인해봐야 정확히 알 것 같아요!" 라고 하셨지만 나는 어떻게 해야하는지 구체적으로 몰랐다. 결국 실장님이 인프라담당자에게 관련 이슈에 대해서 전달하고, 내게 eks 접속과 관련해서 커맨드를 알려주고 설명을 쭉 해주셨다. 쿠버네티스에 대해서 강의를 들은 적은 있지만 대충 억지로 공부했어서..

개발 이슈 2023.05.13

Bastion 서버란 무엇인가

올해초에 인프라 전환을 하기 전에 서비스를 배포할 때 Bastion서버라는 곳에 접속한 다음에 여러 커맨드를 입력하고 배포를 했었다. 당시의 서비스 배포 과정은 다음과 같았다. $ ssh -i ~/.ssh/id_rsa deploy@3.xxx.xxx.xxx -A $ conn api1 $ git pull $ yarn build $ pm2 restart 0 대충 이렇게 하면 서비스 배포가 된다는 것은 알고 있었는데 어떤 과정인지 잘 몰랐어서 늦게나마 찾아보고 정리했다. 명령어에 대한 설명은 다음과 같다. $ ssh -i ~/.ssh/id_rsa deploy@3.xxx.xxx.xxx -A 외부에서 deploy라는 사용자로 3.xxx.xxx.xxx라는 IP주소를 가진 서버에 접속한다. 이때 ~/.ssh/id_rs..

DevOps 2023.05.13

Jenkins 개념 및 용어 정리

Jenkins란? Jenkins는 지속적인 통합(Continuous Integration, CI) 및 지속적인 전달(Continuous Delivery, CD)를 지원하는 오픈 소스 자동화 도구입니다. 소프트웨어 개발에서 CI/CD는 개발자들이 애플리케이션의 변경 사항을 빠르게 통합하고, 테스트 및 배포를 자동화하여 품질을 유지하고 소프트웨어를 신속하게 제공하는 데 도움을 줍니다. Jenkins는 다양한 개발 언어와 프레임워크를 지원하며, 유연하고 확장 가능한 플러그인 아키텍처를 갖추고 있어 다양한 개발 환경에 맞춰 사용자 정의 파이프라인을 구성할 수 있습니다. Jenkins를 사용하면 소스 코드의 변경 사항을 감지하고, 빌드, 테스트, 정적 코드 분석, 패키징, 배포 등의 작업을 자동화할 수 있습니다...

DevOps 2023.05.13

싱글톤 패턴 (Singleton Pattern)

싱글톤 패턴 (Singleton Pattern) 싱글톤 패턴은 객체 지향 프로그래밍에서 많이 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 클래스의 인스턴스가 오직 하나만 생성되도록 보장하며, 이 인스턴스에 대한 전역적인 접근이 필요할 때 사용됩니다. 즉, 전역에서 유일한 객체를 생성하고, 이후에는 생성된 객체를 공유하여 사용하는 패턴입니다. 특징 클래스 내부에서 유일한 인스턴스를 생성합니다. 유일한 인스턴스를 참조할 수 있는 전역 변수를 제공합니다. 외부에서 인스턴스를 생성할 수 없도록 생성자를 private으로 선언합니다. 유일한 인스턴스를 반환하는 정적 메소드를 제공합니다. 구현 방법 싱글톤 패턴을 구현하는 방법은 다양하지만, 가장 간단한 방법은 클래스의 생성자를 private으로 선언하고, 정적..

Architecture 2023.05.10

The project you were looking for could not be found or you don't have permission to view it. 에러

remote: remote: ======================================================================== remote: remote: The project you were looking for could not be found or you don't have permission to view it. remote: remote: ======================================================================== remote: fatal: Could not read from remote repository. Please make sure you have the correct access rights and t..

개발 이슈 2023.05.08

[요즘 IT] 주니어 개발자에서 미드레벨 개발자로 도약하기 위한 7단계

개발자들의 실력이나 연차를 보고 굳이 주니어와 시니어의 레벨로 나누는 경향이 많습니다. 그리고 주니어와 시니어의 중간쯤 애매한 위치의 레벨을 "미드레벨"이라고 부르기도 합니다. "주니어"에서 "미드레벨"로 도약하기 위한 7가지 단계에 대한 좋은 글을 찾아 공유해봅니다. 1. 시니어 개발자의 피드백을 경청할 것 2. 코딩, 테스팅, 리팩토링, 테스팅을 반복할 것 3. 가능한 스스로 결정을 내릴 것 4. 진행 상황과 기대치, 문제점에 대해 소통할 것 5. Git 을 익힐 것 6. 본인의 잘못을 파악하고 실수를 통해 배워나갈 것 7. 360도를 볼 수 있는 개발자가 될 것 원문 https://javascript.plainenglish.io/7-steps-to-go-from-junior-to-mid-level-..

컬럼 2023.05.07

[요즘 IT] 미드레벨 SW 엔지니어가 갖춰야 할 7가지 역량

개발자들은 종종 실력이나 경력 연차에 따라 주니어나 시니어로 구분되곤 합니다. 그러나 주니어도 아니고 시니어도 아닌 애매한 레벨의 개발자를 "미드레벨" 또는 "중니어"라고 표현하기도 합니다. 이러한 중간 레벨의 개발자들이 가져야 할 7가지 역량에 대해 소개하는 좋은 글을 찾아 공유해봅니다. 1. 버그를 고칠 수 있어야 한다. 2. 그 기술이 왜 필요한지 명확히 설명할 수 있어야 한다. 3. 팀 차원에서 일을 잘할 수 있는 방법을 고민해야 한다. 4. 일정 수준 이상 퍼포먼스를 낼 수 있어야 한다. 5. 원활한 커뮤니케이션으로 요구사항을 협의해야 한다. 6. 배포 이후 발생할 수 있는 문제에 대비해야 한다. 7. 코드 이해를 위한 빠른 판단과 행동력이 있어야 한다. 출처 https://yozm.wishke..

컬럼 2023.05.07

[개발 서적] 리팩터링 2판 후기

교보문고인가 알라딘에서 온라인으로 구매하였고, 분철 서비스(+2000원) 도 받았다. 강의 정리 github : https://github.com/kkeolmusae/refactoring-2nd-edition GitHub - kkeolmusae/refactoring-2nd-edition Contribute to kkeolmusae/refactoring-2nd-edition development by creating an account on GitHub. github.com 내용 요약 "리팩터링 2판"은 소프트웨어 개발에서 중요한 개념인 리팩터링에 대한 실전적인 가이드를 제공하는 책이다. 이 책은 마틴 파울러(Martin Fowler)와 그의 동료들이 쓴 책으로, 소프트웨어 개발 과정에서 코드를 수정하고 ..

도서 & 강의 2023.05.06