분류 전체보기189 [스프링 부트(SpringBoot) : 중급] 중급 실전 예제 10. 중급 실전 예제 여기서는 중급 수준의 웹 애플리케이션, RESTful API를 사용한 모바일 애플리케이션 백엔드, 그리고 마이크로서비스 기반 애플리케이션 개발을 포함한 다양한 실전 예제를 다룹니다. 10.1. 중급 수준의 웹 애플리케이션 중급 수준의 웹 애플리케이션에서는 다음과 같은 기능을 구현해 봅니다. 사용자 인증 및 인가 게시판 기능 파일 업로드 및 다운로드 페이징 처리 예제 코드 @Controller public class BoardController { // 게시판 서비스 @Autowired private BoardService boardService; // 게시판 목록 조회 @GetMapping("/boards") public String getBoardList(Model model, .. 2023. 5. 5. [스프링 부트(SpringBoot) : 중급] 마이크로서비스 아키텍처 기초 9. 마이크로서비스 아키텍처 기초 9.1. 마이크로서비스 아키텍처 소개 마이크로서비스 아키텍처는 소프트웨어 시스템을 작고 독립적인 서비스로 분리하여 개발, 배포, 운영하는 방식입니다. 이렇게 분리된 서비스는 각각 독립적인 프로세스에서 실행되며, 각 서비스는 독립적으로 확장이 가능합니다. REST, gRPC 등의 통신 방식을 통해 서로 소통합니다. 이러한 아키텍처의 주요 장점은 서비스 간의 결합도를 낮추고, 확장성과 유지보수성을 높여줍니다. 스프링 부트와 스프링 클라우드를 사용하면 마이크로서비스 아키텍처를 쉽게 구현할 수 있도록 도와줍니다. 9.2. 서비스 디스커버리와 로드 밸런싱 서비스 디스커버리는 마이크로서비스 간의 통신을 위해 서비스를 찾아주는 기능입니다. 일반적으로 서비스 레지스트리라는 중앙 저장소.. 2023. 5. 5. [스프링 부트(SpringBoot) : 중급] 성능 최적화 및 모니터링 도구 8. 성능 최적화 및 모니터링 도구 8.1. 애플리케이션 성능 모니터링 애플리케이션 성능 모니터링(APM)은 애플리케이션의 성능을 실시간으로 모니터링하고 분석하는 도구입니다. 스프링 부트 애플리케이션에서는 다양한 APM 도구를 사용할 수 있으며, 이 중에서 인기 있는 몇 가지 도구는 다음과 같습니다. Spring Boot Actuator: 스프링 부트 애플리케이션의 상태를 모니터링하고 관리하는 데 사용되는 모듈입니다. Actuator를 사용하면 애플리케이션의 상태, 메트릭, 빈, 스레드 등을 확인할 수 있습니다. // pom.xml org.springframework.boot spring-boot-starter-actuator Micrometer: 스프링 부트와 함께 사용할 수 있는 애플리케이션 메트릭 .. 2023. 5. 5. [스프링 부트(SpringBoot) : 중급] 클라우드 환경에서의 배포 7. 클라우드 환경에서의 배포 7.1. 도커를 사용한 컨테이너화 및 배포 도커(Docker)는 애플리케이션과 의존성을 패키지화하는 데 사용되는 컨테이너 플랫폼입니다. 도커를 사용하여 애플리케이션을 컨테이너로 패키지화하면, 동일한 환경에서 어디서나 실행할 수 있습니다. 먼저 Dockerfile을 작성해야 합니다. FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 위 Dockerfile을 프로젝트 루트에 작성한 다음, 터미널에서 다음 명령어를 실행하여 도커 이미지를 빌드하고 실행합니다. $ docker build -t my-spring-boot-app ... 2023. 5. 5. [스프링 부트(SpringBoot) : 중급] 테스트 전략 및 심화 6. 테스트 전략 및 심화 6.1. 테스트 주도 개발(TDD) 테스트 주도 개발(Test-Driven Development, TDD)은 테스트를 중심으로 개발하는 방식으로, 테스트 케이스를 먼저 작성한 후 코드를 작성합니다. 이를 통해 코드 품질 향상과 버그 감소에 도움이 됩니다. [TDD의 주요 단계] 실패하는 테스트 케이스 작성 : 먼저 테스트 케이스를 작성하여 실패하게 합니다. 테스트를 통과할 수 있는 최소한의 코드 작성 : 테스트를 통과할 수 있도록 최소한의 코드를 작성합니다. 코드를 리팩토링하면서 개선 : 테스트를 통과한 코드를 개선하고 리팩토링합니다. 예제 코드 (계산기 서비스 TDD) // CalculatorTest.java @RunWith(SpringRunner.class) @SpringB.. 2023. 5. 5. [스프링 부트(SpringBoot) : 중급] 스프링 시큐리티를 활용한 보안 강화 5. 스프링 시큐리티를 활용한 보안 강화 5.1. 비밀번호 저장 전략 비밀번호 저장 전략은 사용자의 비밀번호를 안전하게 저장하기 위한 방법입니다. 애플리케이션에 저장되는 비밀번호는 해싱(hash)과 솔트(salt)를 이용하여 암호화되어 저장됩니다. 해싱: 비밀번호를 일정한 길이의 문자열로 변환하는 알고리즘입니다. 해싱을 통해 원본 비밀번호를 유추하기 어렵게 만듭니다. SHA-256, BCrypt, SCrypt 등 다양한 해싱 알고리즘이 존재합니다. 솔트: 해싱 과정에서 사용되는 무작위 문자열로, 같은 비밀번호라도 솔트 값이 다르면 다른 해시 값이 생성됩니다. 이를 통해 무차별 대입 공격(brute force attack)을 방어합니다. 예제 코드 (비밀번호 저장 전략 설정) @Configuration p.. 2023. 5. 5. 이전 1 ··· 12 13 14 15 16 17 18 ··· 32 다음