반응형

프로젝트 24

Spring Security 구현방식

본 포스팅은 단순 기록용 포스팅입니다. 학습 자료가 필요하신분은 하단의 링크를 이용해주시면 됩니다. https://wonuk.tistory.com/156 Spring Security란? Spring Security란? '인증'과 '인가'를 제공하는것에 초점을 맞춘 프레임워크 입니다. 이전 포스팅 링크 https://wonuk.tistory.com/154?category=1025481 인증(Authentication)과 인가(Authorization)란 무엇인가.. wonuk.tistory.com 개요 Spring Security 스프링 기반의 어플리케이션의 보안을 담당하는 프레임워크 스프링 시큐리티의 역할 1. 인증(Authenticatio) : 애플리케이션의 작업을 실행할 수 있는 주체 2. 인가(Au..

성능 테스트, 스트레스 테스트, 부하 테스트 [Locust, JMeter]

용어정리 성능 테스트(Performance Test) 시스템이 특정 상황에서 어느 정도 수준의 성능을 보이는지 확인하는 테스트입니다. 성능 테스트는 시스템의 결함을 찾는 것이 아니기 때문에 성공과 실패의 개념으로 결과를 분석하지 않습니다. 현재 시스템의 정확하고 면밀한 객관적인 데이터를 확보해서 성능에 대한 현재 상황을 이해하는 것이 중요합니다. 예를 들면, 특정 시나리오 상황에서의 API의 평균 처리 속도를 파악하는 테스트를 성능 테스트로 볼 수 있습니다. 부하 테스트(Load Test) 임계 값 한계에 도달하는 순간까지 시스템의 부하를 지속적으로 증가하면서 진행하는 테스트입니다. 보통 LoadRunner 등의 테스트 도구를 활용해서 다양한 부하 시나리오를 설정하고, 강도를 지속적으로 증가하면서 결과를..

Docker Compose

개요 docker 컨테이너를 만드는 명령어가 있습니다. $ docker\ run \ --name"db"\ -v"$(pwd)/db_data:/var/lib/mysql"\ -e"MYSQL_ROOT_PASSWORD=123456"\ -e"MYSQL_DATABASE=wordpress"\ -e"MYSQL_USER=wordpress_user"\ -e"MYSQL_PASSWORD=123456"\ --network wordpress_net\ mysql:5.7 그런데 컨테이너를 만들때마다 이렇게 복잡한 명령을 실행해야 한다면 너무 힘들어집니다. 또한, 자신은 할줄안다고 하더라도 동료들은 명령어를 사용할줄 모른다면 명령어가 너무 부담스럽습니다. 이러한 상황에서 docker-compose.yml이라는 파일을 만듭니다. vers..

Web Server와 Web Application Server(WAS)

Web Server란? 웹 브라우저(클라이언트)로부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램 정적 컨텐츠 요청 인자 값에 상관없이 달라지지 않는 컨텐츠(html, css, image 등) 어느 사용자 요청이든 항상 동일한 컨텐츠를 말합니다. Web Server의 기능 클라이언트로부터 HTTP 요청을 받을 수 있습니다. 1. 정적 컨텐츠 요청 시 정적 컨텐츠(html, jpeg, css등)을 제공할 수 있습니다. 2. 동적 컨텐츠 요청 시 Web Application Server(WAS)로 전달하여 WAS가 처리한 결과를 클라이언트에 전달합니다. Web Application Server(WAS)란? DB 조회나 다양한 로직(비지니스 로직 등) 처리를 요구하는 동적인 컨텐..

Forward Proxy, Reverse Proxy, Load Balancer

본 포스팅은 테코톡 유튜브를 기반으로 만들어졌습니다. https://www.youtube.com/watch?v=YxwYhenZ3BE 1. Proxy 프록시를 하나의 단어로 표현하면 '대리'라고 할 수 있습니다. 남을 대신하여 일을 처리한다는 의미입니다. 프록시는 Spring Proxy, Proxy 패턴, Network Proxy 등등 많은 프록시가 있습니다. 이번에 알아볼 Proxy는 Network Proxy 입니다. Proxy Server 한마디로 대신 처리하는 서버라고 할 수 있습니다. Proxy Server란? 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 ..

JUnit이란? 단위, 통합, 기능 테스트란?

JUnit 자바와 JVM 계열의 언어(ex : 코틀린)에서 사용하는 단위 테스트 프레임워크를 말합니다. 참고) 다른 언어도 단위 테스트를 위한 프레임워크가 존재하며 보통 이름을 xUnit이라 칭합니다. 예 : CppUnit(C++), NUnit(.NET 프레임워크), unittest(파이썬) JUnit의 장점 테스트 결과는 테스트 클래스로 작성하여 개발자에게 테스트 방법 및 클래스의 히스토리를 남기고 공유가 가능합니다. 단정(Assert) 메서드로 테스트 케이스의 수행 결과를 판별합니다. 어노테이션(Annotation)으로 간결하게 지원합니다. JUnit의 대표적인 단정(Assert)메서드와 어노테이션에 대해 다음 포스팅을 작성하도록 하겠습니다. 단위 테스트(Unit Test) < 통합 테스트(Integ..

CI/CD 개념정리

본 포스팅은 유튜브를 기반으로 만들어졌습니다. https://www.youtube.com/watch?v=0Emq5FypiMM CI/CD 개요 요즘같이 빠르게 진화하고 변화하는 시대에 어떻게하면 시장과 고객의 요구에 빠르게 반영해서 제품을을 출시, 업데이트 할 것인가는 큰 과제입니다. 바로 이것을 위해서 세계적으로 많은 기업들이 CI/CD를 개발 프로세스로 사용합니다. 대부분의 회사에서 CI/CD 환경에서 일하고 있기 때문에 정확하게 어떤 역할을 하는지 알고있어야 합니다. CI/CD란? 어플리케이션 개발 단계부터 배포까지 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것을 말합니다. CI(Continuous Integration) - 지속적인 통합 CD..

NGINX란 무엇인가? 왜 사용하는가?

본 포스팅은 테코톡 유튜브를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=Ps8HDIAyPD0 NGINX vs APACHE SERVER 설명 시작에 앞서 특정 상황에 대해 이야기 하겠습니다. 다른 개발자와 개발에대해 이야기 하고있는 상황에서 상대방이 엔진엑스가 무엇인지 질문을 합니다. 인터넷에 검색하면 간단하게 엔진엑스는 웹서버, 리버스 프록시, 로드 밸런서, HTTP Cache로도 쓰일 수 있는 소프트웨어 라는것을 알 수 있습니다. 요청에 응답하기 위해 이벤트 기반 구조를 채택했고 덕분에 현재 웹서버 분야에서 1등을 하고 있습니다. 그렇다면 이벤트 기반 구조의 장점은 무엇이고 웹 서버에서 제일 잘나가는것이 Apache HTTP Server로 알고있는데 그것과 엔진엑..

Docker 입문 下

본 포스팅은 생활코딩 유튜브를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=Ps8HDIAyPD0 4. 컨테이너 run 上편에서는 설치부터 docker hub에서 이미지를 pull하는 방법까지 알아보았습니다. 이제는 이미지를 실행시켜서 컨테이너를 만드는 방법인 run을 알아보겠습니다. docker desktop -> images를 클릭하여 httpd위에 마우스를 올려놓으면 우측에 run버튼이 나오게됩니다. run을 클릭하게되면 이미지를 컨테이너로 만드는 대화상자가 등장합니다. 이때 run 버튼만 눌러도 되지만 이미지를 컨테이너로 만들면 여러개의 컨테이너가 생기는데 그때 이름이 잘 지정되어 있어야 관리하기 편합니다. Optinal Settings를 눌러서 입력칸이 나오면..

Docker 입문 上

본 포스팅은 생활코딩 유튜브를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=Ps8HDIAyPD0 1. 개요 내 컴퓨터에서 Application을 만들기 위해서는 운영체제에 여러 소프트웨어를 설치해야 합니다. 예를 들어서 웹 개발을 한다고 하면 Web server나 database 등을 설치해야 합니다. 그러나 이것을 설치하는 작업은 아주 까다로운 작업입니다. 그래서 개발자들은 이러한 생각을 가지게됩니다. Web Server를 만든 사람이 컴퓨터를 구해서 적당한 OS를 설치하고 그 위에 Web Server를 설치한 다음 그것을 개발자에게 준다면 얼마나 좋을까요? DB도 마찬가지 입니다. 전문가가 알아서 잘 설치한 상태이기 때문에 실행되지 않을까 걱정할 필요도 없어집니다..

반응형