전체 글

전체 글

    [Spring Boot] TDD - JUnit?

    JUnitJUnit은 Java의 표준 단위 테스트 프레임워크 입니다.JUnit은 어노테이션을 기반으로 테스트를 지원합니다.JUnit 5는 크게 Jupiter, Platform, Vintage 모듈로 구성됩니다. JUnit LifeCycle AnnotationJUnit은 아래와 같은 테스트 라이프 사이클을 가지고 있습니다.@Test  -  테스트용 메소드를 표현하는 어노테이션@BeforeEach  -  각 테스트 메소드가 시작되기 전에 실행되어야 하는 메소드를 표현@AfterEach  -  각 테스트 메소드가 시작된 후 실행되어야 하는 메소드를 표현@BeforeAll  -  테스트 시작 전에 실행되어야 하는 메소드를 표현 (static 처리 필요)@AfterAll  -  테스트 종료 후에 실행되어야 하는 ..

    [Internet] Browsers and how they work?

    브라우저들을 소개하며 그 작동 원리를 설명하겠습니다. Browser 보통 웹 브라우저 혹은 인터넷 브라우저, 웹 탐색기 등으로 부릅니다. 주요 웹 브라우저로는 구글 크롬, 모질라 파이어폭스, 인터넷 익스플로러 등등이 있습니다. 웹 브라우저는 사용자를 대신하여 인터넷을 통해 웹 서버에 데이터를 요청하고 응답된 데이터를 사용자에게 GUI로 보여주는 클라이언트 프로그램입니다. How they work? HTTP와 같이 웹 서버가 사용하는 프로토콜을 사용하여 인터넷을 통해 웹 서버에 웹 페이지 등의 데이터를 요청하고 응답받은 데이터들로 사용자에게 웹 페이지와 다양한 데이터들을 출력해 주는 것이 웹 브라우저의 주된 기능입니다. HTTP는 이전 포스트에서 설명했으니 참고해주시면 감사하겠습니다. 그렇다면 사용자의 입..

    [Internet] What is HTTP?

    HTTP는 Hypertext Transfer Protocol의 약자입니다. 이번 포스트에서는 HTTP를 다음 단계를 이해할 수 있는 수준까지만 설명하겠습니다. HTTP? HTTP는 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜입니다. 여기서 애플리케이션 레이어는 OSI 7계층에서의 한 계층입니다. HTML 웹 개발을 시작하면 기본으로 배우는 것이 이 HTML입니다. HTML은 웹 페이지가 어떻게 구조화되는지 브라우저에게 알려주는 마크업 언어입니다. Protocol 프로토콜은 컴퓨터 내부 혹은 컴퓨터 사이에서 데이터 교환 방식을 정의하는 규칙 체계입니다. 예를들어서 기기 간 통신이 이루어질 때, 이를 통해 교환되는 데이터의 형식을 약속해두어야 그에 맞는 동작을 할 수 있으므..

    [Internet] How does the internet work?

    인터넷이 어떻게 작동하는가... 많은 사람들이 인터넷을 사용하지만 인터넷의 작동 원리를 이해하고 사용하지는 않을 것입니다. 천천히 알아봅시다. Internet? 먼저, 인터넷이란 무엇을 지칭할까요? 인터넷은 웹을 가능하게 하는 기술 인프라이며 대규모 컴퓨터 네트워크입니다. 여기서 저는 "대규모 컴퓨터 네트워크"라는 말에 집중할 필요가 있다고 생각합니다. Network? 네트워크는 둘 이상의 엔트포인트(ex. 컴퓨터)가 통신하기 위한 연결을 말합니다. 연결은 물리적으로 이루어지며, 이 물리적인 연결은 OSI 7 계층을 통해 소프트웨어의 연결로 이루어집니다. (이후 로드맵에서 살펴봅시다.) 그렇다면 인터넷은 모든 컴퓨터가 물리적으로 연결되었다고 말할 수 있을 것입니다. 하지만 모든 연결이 위의 그림과 같이 ..

    [Spring Boot] Spring Boot에서 TDD 방법론

    이전에 스프링을 사용하여 개발을 진행했을 때는 테스트를 거의 하지 않았습니다.딱히 필요하다고 느끼지 못했습니다.하지만 많은 팀에서 채택하는 것을 보고TDD 방법론과 조금은 친해지면서 새롭게 시작할 프로젝트에는 적용해서 개발해보고 싶어졌습니다. TDD?먼저 TDD란??Test Driven Development, 테스트 주도 개발입니다.말 그대로 테스트 코드를 먼저 작성하고 테스트를 통과하기 위해 개발을 이어가는 방법입니다. Why TDD?그렇다면 TDD를 채택하는 이유는 무엇일까요?TDD의 장점은 다음과 같습니다.객체 지향적인 코드 개발, 설계 수정시간의 단축, 유지보수(리팩터링)의 용이성, 테스트 문서의 대체 가능 저는 이중에서 객체 지향적인 코드 개발, 유지보수의 용이성, 테스트 문서의 대체 가능이 세..

    [AWS] EC2에 FastAPI 배포 ( + Nginx )

    준비물 EC2 인스턴스와 FastAPI를 먼저 생성해 주세요. EC2 인스턴스의 인바운드 규칙 편집을 통해 80번 포트를 개방해 주세요! 설치 Python 설치 / FastAPI 설치 / uvicorn 설치 / nginx 설치 Python 설치 각자 FastAPI를 통해 API를 만들 때 사용했던 Python 버전을 사용해 줍니다. 저는 최신 파이썬으로 하겠습니다. 설치하기 sudo apt update sudo apt-get upgrade python3 sudo apt install python3-pip 확인하기 pip3 --version FastAPI와 uvicorn 설치 지난 포스트에 FastAPI 시작하기를 통해서 설치할 수 있습니다. https://wbsf.tistory.com/entry/Fast..

    [AWS] AWS CLI를 이용해서 S3 관리하기

    이전 포스트는 AWS CLI를 이용해서 S3에 연결했다면 이번 포스트에서는 연결된 S3를 AWS CLI를 통해 관리하는 방법입니다. 버킷 생성 (예시 포함) aws s3 mb [--options] aws s3 mb s3://my-bucket 버킷 및 객체 조회 aws s3 ls [--options] 버킷 삭제 aws s3 rb [--options] 버킷 내 객체 삭제 aws s3 rm [--options] 객체 이동 (예시 포함) aws s3 mv [--options] aws s3 mv s3://bucket-name/example s3://my-bucket/ 객체 복사 aws s3 cp [--options] 객체 동기화 $ aws s3 sync [--options] 마무리 이처럼 많은 명령어가 존재하고,..

    [AWS] AWS CLI를 이용해서 S3 버킷 연결하기

    Windows 기준! IAM은 여기서는 패스! https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-prereqs.html 이 링크를 참고하세요. AWS Key를 준비해 주세요!! 사용자의 Access key, Secret access key 두 가지를 준비해 주세요. AWS 최신 CLI 설치 https://awscli.amazonaws.com/AWSCLIV2.msi windows용 AWS CLI MSI 설치 관리자를 다운로드하여 실행합니다. 설치가 되었다면 cmd창에 다음 명령어를 입력해서 확인할 수 있습니다. aws --version 시작! 우선 python 3.8 이상을 설치해야 합니다. 먼저 AWS 사용자를 추가해야 합니다...