본문 바로가기
  • Masacorgi 's Dev Bloggg

전체 글95

DynamoDB란 무엇인가 1.DynamoDB 기초 DynamoDB에서는 테이블을 생성할 때 모든 attribute에 대한 스키마를 미리 정의해 둘 필요가 없다. 오직 Primary Key(PK)에 대한 스키마만 테이블을 생성할 때 정의하면 된다. PK에는 단일 PK(simple key)와 복합 PK(composite key) 두가지 종류가 있다. 단이 PK는 하나의 attribute만을 primary key로 사용하고, 복합 PK는 두개의 attribute를 결합해서 사용한다. 복합 PK에서 첫번째 attribute는 partition key, 두번째 attribute는 sort key라고 부른다. (attrbute는 RDB의 column과 유사하다) Primary Key(PK) 단일 PK (Simple Key) 단일 attri.. 2024. 3. 2.
FastAPI 에서의 테스트코드 '신의 말씀' : 백엔드, 혹은 소프트웨어 개발시 테스트 코드가 무엇인지 조금 알아보기 테스트에는 unit test , end to end test 등의 여러가지 테스트 종류도 존재합니다. 우리 백엔드 테스트 코드는 unit test 기반으로 하게 될 것이구요. 파이썬에서의 테스트코드 프레임워크인 pytest에 대해서 조금 알아보시고! fastapi 에서의 테스트코드 짜는것도 한번 알아보시면 좋겠습니다. 1. 테스트 코드란? 테스트 코드는 소프트웨어 품질을 향상시키기 위해 사용되는 코드이다. 개발자들은 주로 자신이 작성한 코드가 의도한 대로 동작하는지 확인하고, 코드 변경이나 개선 작업을 수행할 때 이전 기능들이 영향을 받지 않도록 보장하기 위해 테스트 코드를 작성한다. 테스트 코드를 작성하면 코드의 안.. 2024. 3. 2.
Reverse Proxy란 무엇인가? 1. Reverse Proxy란 무엇인가? Reverse Proxy는 클라이언트와 서버 간의 통신을 중계하는 서버이다. 클라이언트는 리버스 프록시를 통해 서버에 대한 요청을 보내며, 리버스 프록시는 이 요청을 받아서 백엔드 서버로 전달하고 응답을 클라이언트에게 반환한다. 이 과정에서 리버스 프록시는 클라이언트로부터 받은 요청을 수정하거나 필터링하여 백엔드 서버에 전달한다. 리버스 프록시는 여러 목적으로 사용되며, 주요 기능은 다음과 같다. 로드 밸런싱 (Load Balancing) 리버스 프록시는 클라이언트로부터 받은 요청을 여러 백엔드 서버로 분산시켜 부하를 균등하게 분배한다. 이를 통해 서버의 성능을 향상시키고 가용성을 높일 수 있다. SSL 암호화 및 해독 (SSL Termination) 클라이언트.. 2024. 3. 2.
Logging 이란? ( @ FastAPI ) 1. logging 이란? 로깅은 현재 우리 프로그램이 어떤 상태를 가지고 있는지, 외부 출력을 하게 만들어서 프로그램의 동작을 이해하고, 문제 발생 시 진단과 해결에 도움을 얻기 위해 추가하는 기능이다. 로깅을 사용하는 이유 디버깅 및 문제 해결 성능 모니터링 : 성능에 관한 정보를 제공, 성능 병목현상이나 최적화 필요 부분을 식별 가능 보안 : 보안 이벤트를 기록하여 시스템에 대한 불법적 접근, 공격 감지 가능 오디팅 : 특정 이벤트나 행동에 대한 기록을 제공하여 나중에 검토, 증명 가능 로깅의 레벨 로깅은 다양한 레벨이 있다. DEBUG : 디버깅 목적의 상세한 정보 기록 INFO : 정보성 메시지 기록 WARNING : 잠재적 문제를 나타내는 경고 기록 ERROR : 심각한 문제 발생 기록 (프로.. 2024. 3. 2.
Load Balancer란 무엇인가? 1. Load Balancer란 무엇인가? 로드 밸런서는 네트워크 트래픽이 여러 대의 서버에 균등하게 분산되도록 하는 장치나 서비스를 말한다. 로드 밸런서는 웹사이트, 애플리케이션 서버, DB 서버 등 여러 서버에 들어오는 요청을 관리하여 서버 부하를 분산시키고 가용성과 신뢰성을 향상시킨다. 로드 밸런서의 주요 목적은 다음과 같다. 부하 분산(Load Distribution) 여러대의 서버에 들어오는 트래픽을 균등하게 분산하여 각 서버에 동등한 부하를 유지한다. 가용성 향상(High Availability) 하나 이상의 서버가 고장나거나 유지 보수 중일 때, 다른 서버가 요청을 처리하여 시스템의 가용성을 유지한다. 응답시간 최적화(Optimizing Response Time) 로드 밸런서는 각 서버의 현.. 2024. 3. 2.
Docker 도커란 무엇인가? 1. Docker 란 무엇인가? 도커는 컨테이너 기술을 기반으로 동작하는 가상화 플랫폼이다. 가상화란 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술이고, 컨테이너란 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술을 뜻한다. 다시말해, 도커는 '독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술'이라고 할 수 있다. 가상화 가상화는 하나의 하드웨어를 여러개의 가상 머신으로 분할해 효율적으로 사용할 수 있는 기술이다. 분할 된 가상머신들은 각각 독립적인 환경으로 구동되는데, 베이스가 되는 기존의 환경을 Host OS, 가상 머신으로 분할된 각각의 환경을 Guest OS라고 부른다. 가상머신.. 2024. 3. 2.
HTTP란 무엇인가? 1.HTTP란? HTTP란 무엇인가? HTTP는 Hyper Text Transfer Protocol의 줄임말로, 인터넷 데이터 통신규약이다. 인터넷 상에서 주고받는 데이터의 형식을 규칙으로 정함으로써 서로 다른 사람과 조직이 만든 프로그램이 인터넷을 통해 데이터를 주고 받을 수 있다. 컴퓨터는 네트워킹에서 TCP/IP 프로토콜을 이용한다. 이것을 기반으로 동작하는 응용 프로토콜에는 다음과 같은 프로토콜이 있다. FTP(파일전송) SMTP,POP3,IMAP(이메일, 웹메일) HTTP(인터넷데이터통신) HTTP는 이중 가장 널리 이용되며, 웹 브라우징 및 웹 애플리케이션과 관련된 데이터(HTML과 다양한 멀티미디어 자원)을 송수신 하는데 사용된다. 2.HTTP의 동작 HTTP는 어떻게 동작하는가? HTTP는.. 2024. 3. 2.
AWS 기초지식 (DynamoDB, EC2, VPC, Lambda) 1.AWS AWS(Amazon Web Services)는 아마존닷컴에서 개발한 클라우드 컴퓨팅 플랫폼이다. AWS는 클라우드 네트워킹 서비스를 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스를 제공한다. 1.1 클라우드 컴퓨팅이란? 기존의 물리적인 형태의 실물 컴퓨팅 리소스를 네트워크 기반 서비스 형태로 제공하는 것. 네트워크 기반으로 제공되기 때문에 사용자는 네트워크 상에서 클라우드 서비스의 자원을 이용할 수 있다. 클라우드 컴퓨팅 서비스는 크게 세가지로 나눌 수 있다. IaaS ( Infrastructure as a Service ) PaaS ( Platform as a Service ) SaaS ( Software as a Service ) IaaS는 AWS, 네이버플랫폼과 같은.. 2024. 3. 2.
GitHub Actions, CI/CD 란? GitHub Actions 란? Runner MarketPlace Actions Secrets GitHub Actions 작업 단위 GitHub Actions 란? github actions는 깃허브가 제공하는 CI(지속적 통합), CD(지속적 배포) 서비스이다. 개발 프로세스 자동화 소스코드 변경테스트/빌드/배포까지 자동으로 수행 Runner Workflow는 Github에서 호스팅하는 가상환경인 Runner에서 실행된다. Runner는 Workflow에서 정의된 작업을 수행하는 데 사용되는 가상머신 또는 컨테이너이다. 가상환경에서 workflow가 실행되기 때문에 다양한 스크립트 명령어를 통해 환경을 제어할 수 있다. Marketplace Actions GitHub Actions Marketplace.. 2024. 3. 2.
[project - KWJ] 서버이전, GitHub CI/CD 수정하기 프로젝트 KingWangJJang 에서 서버를 기존 Synology 개인서버 -> AWS EC2로 이전하면서 GitHub Actions에서 관리하는 CI/CD를 수정해야하는 작업이 할당됐다. EC2 인스턴스는 프리티어 계정으로 팀장님이 생성해두었다. 호스트 정보, 사용자 이름을 받아서 수정하면 된다. 작업 요약 .github/workflows/야믈파일 수정 Dockerfile 수정 작업에 대한 내용을 먼저 파악해보자 CI/CD 개념 파악 GitHub Actions 사용법 파악 Yml 파일 수정 Dockerfile 수정 1. CI/CD 개념 파악 CI(Continuous Integration, 지속적 개발)는 개발자들이 작성한 코드를 지속적으로 통합하여 충돌 및 오류를 최소화하고 품질을 높이는 과정이다. .. 2024. 3. 2.
개발 블로그 시작 #1 글을 작성하고 블로그를 관리해보세요.님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다.'편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다.글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요.   #2 다양한 스킨이 있어요.티스토리에 있는 다양한 '스킨'도 살펴 보세요.블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다.어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요.'스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요.마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요.찾기 어려울 .. 2023. 11. 5.