반응형

분류 전체보기 272

[프로그래머스/JavaScript] Lv.2 과제 진행하기

https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다. 과제는 시작하기로 한 시각이 되면 시작합니다. 새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다. 진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다. 만약, 과제를 끝낸 시각에 새로 시작해야 ..

Algorithm 2023.07.27

[Spring Boot/Spring Cloud] MSA - Netflix Eureka 서버/클라이언트 구축

Spring Cloud Netflix Eureka란? MSA를 구축하기 위한 Spring Cloud 프로젝트 중 하나로, 서비스 디스커버리(Service Discovery)를 지원하는 도구이다. 마이크로서비스 아키텍처에서는 여러 개의 작은 서비스들로 애플리케이션을 구성하는데, 이러한 서비스들은 서로 독립적으로 배포 및 확장될 수 있어야 한다. 따라서, 각 서비스들은 다른 서비스들과 상호작용을 해야 하며 이를 위해 서비스 디스커버리 메커니즘이 필요하다. 쉽게 말해서 key-value로 각각의 서비스를 등록해 저장하고 있는 정보가 서비스 디스커버이고 이를 효율적으로 사용할 수 있는 도구가 Eureka 라이브러리이다. 🔔 서비스 디스커버리 서비스 디스커버리는 MSA의 독립적인 서비스들이 서로 상호작용하고 필요..

Java 2023.07.23

Monolith vs Microservice와 MSA 개념 및 특징

Monolith Architecture란? 모든 요소를 하나의 커다란 소프트웨어에 포함하여 개발하는 방법으로, 데이터베이스 로직, 비즈니스 로직, 그리고 프런트엔드 처리까지 모두 단일한 애플리케이션으로 구성되어 작동하고, 이를 패키징하여 서버에 배포하는 방식을 의미합니다. Microservice Architecture란? 애플리케이션을 작은, 독립적인 서비스로 분리하여 개발하고 운용하는 방법으로, 전체 애플리케이션을 여러 개의 작은 마이크로서비스로 분리하고 각 마이크로서비스는 자체적인 비즈니스 로직을 갖고 있으며, 독립적으로 개발, 배포, 확장이 가능하다. 이러한 마이크로서비스는 서로 네트워크를 통해 통신하며, 작은 서비스들이 모여 전체 애플리케이션을 구성하게 된다. 1. Monolith Architec..

CS 2023.07.20

[Spring Boot] Spring Security 권한 설정 및 사용 방법

Spring Security Spring Security는 Java 기반의 애플리케이션에서 보안과 인증을 처리하기 위한 프레임워크로 REST API 및 서비스를 보호하기 위한 다양한 보안 기능을 제공하며 주요 기능으로 인증(Authentication)과 인가(Authorization)가 있다. Spring 프레임워크와 통합되어 사용하기 쉽고 유연한 설정 방식을 제공한다. XML 또는 Java 구성을 통해 보안 설정을 정의할 수 있으며, 어노테이션과 Spring Boot의 자동 설정 기능을 활용하여 간편하게 보안을 구성할 수 있다. * 인증(Authentication) 인증은 사용자의 신원을 확인하는 과정으로, 사용자가 제공한 자격 증명(예: 아이디와 비밀번호)을 검증하여 사용자를 식별한다. Spring ..

Java 2023.07.06

[Spring Boot/Spring Data JPA] Flyway 데이터베이스 마이그레이션

마이그레이션 데이터베이스 마이그레이션이란? 기존 데이터베이스의 스키마와 데이터를 새로운 버전 또는 구조로 이전하는 작업으로 이를 통해 데이터베이스 시스템을 업그레이드하거나 확장할 수 있다. 마이그레이션은 데이터의 백업, 변환, 이동 등의 작업을 포함하며, 데이터의 일관성과 무결성을 유지하고 새로운 데이터베이스 버전으로 전환되며 시스템의 안정성과 확장성을 유지할 수 있다. 1. 동작 흐름 Application Context → Flyway 실행 → 스키마 생성 → hibernate validation(검증) → 적합한 스키마 실행→ 애플리케이션 실행 완료 2. Flyway를 사용한 데이터베이스 마이그레이션 방법 Flyway는 데이터베이스 마이그레이션을 관리하기 위한 오픈 소스 도구이다. 2-1) 의존성 추..

Java 2023.07.04

[Spring Boot] Spring Data JPA 데이터 초기화

* Spring Data JPA 연동 2023.07.02 - [Java] - [Spring Boot] Spring Data JPA 사용 방법 * 전체 소스 https://github.com/kangilbin/Spring-Boot/tree/master/Spring%20Data%20JPA 1. JPA를 사용한 데이터 베이스 초기화 방법 1-1) 스키마 자동 생성 application.properties 설정 파일에 추가 # 엔티티 정보를 바탕으로 자동 스키마 생성 spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=true // 해당 옵션을 사용할지 말지 여부(기본은 false) Entitiy 클래스를 정보를 바탕으로 스키마를 자동 생성해 준다. sp..

Java 2023.07.03

[Spring Boot] Spring Data JPA 연동 방법

ORM이란? 객체와 릴레이션(DB 테이블)간 맵핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크 Spring Data JPA이란? ORM(Object-Relational Mapping)을 보다 간편하게 사용할 수 있도록 추상화된 프레임워크입니다. 1. 개념적 불일치 종류 1. 객체와 테이블 간의 구조적인 불일치: 객체는 클래스와 멤버 변수로 구성되어 있으며, 상속, 다형성, 연관 관계 등의 개념을 가질 수 있습니다. 반면에 테이블은 로우와 컬럼으로 이루어져 있으며, 간단한 데이터 구조만을 표현할 수 있습니다. 객체와 테이블 사이의 이러한 구조적인 차이로 인해 매핑 작업이 필요합니다. 2. 객체 그래프와 테이블 간의 불일치: 객체는 서로 연관되어 있는 그래프 형태로 구성될 수 있습니다. 하지만 테이블은..

Java 2023.07.02

[Spring Boot] DBCP와 MySQL 개념 및 사용 방법

1. MySQL 설정 1-1) Spring Boot가 지원하는 DBCP HikariCP(기본 DBPC) DBCP는 데이터 베이스 커넥션 풀을 의미한다. 데이터 베이스의 커넥션을 만드는 과정이 많은 작업이 일어나는데 커넥션을 미리 여러개 만들어 필요에따라 사용하는 기능이다.(커넥션의 개수, 사용 기간, 최소 유지 개수 등 설정) * HiKariCP 문서 https://github.com/brettwooldridge/HikariCP#frequently-used 커넥션 개수를 많다고 전부 실행할 수 있는게 아니라 CPU Core 개수와 동일하다. 나머지는 대기한다. # application.properties spring.datasource.hikari.maximum-pool-size=4 커넥션의 개수를 지정..

Java 2023.07.01

[프로그래머스/JavaScript] Lv.2 연속된 부분 수열의 합

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다. 수..

Algorithm 2023.06.30

[Spring Boot] 인메모리(H2) 데이터베이스 사용 방법

Spring Boot가 지원하는 인-메모리 DB Spring-JDBC 의존성이 추가되어 있다면 자동 설정이 필요한 Bean들을 설정해 준다. 1. H2 2. HSQL 3. Derb 1. H2 사용방법 1-1) 의존성 추가 JDBC와 H2 의존성을 추가, 아무런 설정을 하지 않아도 인-메모리 데이터 베이스를 사용하는 JDBC가 설정이 돼서 애플리케이션이 동작한다.(DataSource, JdbcTemplate 등) org.springframework.boot spring-boot-starter-jdbc com.h2database h2 runtime 1-2) 코드 작성 DataSource 작성 방법 package com.example.demo; import org.springframework.beans.fac..

Java 2023.06.26
반응형