Backend (42) 썸네일형 리스트형 [Spring/SpringMVC] spring 빌드 시 npm 라이브러리 추가하기 안녕하세요. 이번 포스팅에서는 spring 빌드 시에 npm 라이브러리를 추가하는 방법에 대해 포스팅하도록 하겠습니다. 저희가 흔히 타임리프 혹은 jsp와 같은 템플릿 엔진을 사용하게되면, javascript라이브러리를 링크를 통해 첨가하는 경우가 많습니다. 가령 html head태그에 위와 같이 https:~~ 링크를 통해 해당 라이브러리를 추가하는 경우를 볼 수 있습니다. 특별한 경우가 아니면 위 방식도 괜찮은 방법입니다. 하지만 생각을 조금 바꾸어보면, 링크주소가 변경되거나 추가 버전이 릴리즈 되어 구 버전을 더 이상 활용할 수 없게 될 수도 있습니다. 또한 네트워크 문제에 따라 서비스가 불안정해질 수도 있습니다. 만약에 위 라이브러리들을 사전에 받아놓고, 저희가 빌드 시에 추가할 수 있다면 위 방.. [Spring/SpringBoot] SpringSecurity를 API Server에 적용하기(JWT) 안녕하세요. 오늘 포스팅에서는 Rest Api Server에 Spring Security를 적용시켜 인증된 권한을 가진 유저에게만 요청을 허용하는 방법에 대해 알아보도록 하겠습니다. 우선 spring security를 사용하시려면 gradle 기준 다음의 dependency를 추가하셔야 합니다. implementation 'org.springframework.boot:spring-boot-starter-security' 1. Spring Security 스프링에서 인증 및 권한 부여를 쉽게 도와주는 spring security framework를 제공해줍니다. spring boot 기반 프로젝트를 진행 중이시라면 별도의 보안 관련 처리 없이 spring security를 적용하여 사용하실 수 있습니다. .. [Spring/SpringBoot] RestController에서 Validation Api 사용하기 + MethodArgumentNotValidException 예외 처리하기 안녕하세요. 오늘은 Validation(유효성 검사)의 예외처리에 대해 살펴보겠습니다. 이번에 스프링으로 프로젝트를 진행하게 되었는데, Account 관련 처리를 맡게 되어 회원가입에 관한 Validation 인증을 구현해야 하는 상황이었습니다. ControllerAdvice에서 class를 받아 구현하려 하니, 잘 작동이 되지 않아 제가 사용한 방법을 포스팅하려 합니다. 제가 사용한 SignUpForm은 다음과 같이 정의하였습니다. package com.SCAR.Account; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Email; import javax... [Spring/SpringBoot] 예외처리 Controller 정의하기 안녕하세요. 이번 포스팅에서는 restful service에서 발생하는 예외처리를 하는 방법에 대해 알아보려 합니다. 우선 사용할 샘플 코드는 다음과 같습니다. @GetMapping("/Account/{id}") public Account retrieveUser(@PathVariable int id) { Optional findAccount = accountRepository.findById(id); if(findAccount.isEmpty()) return null; return findAccount.get(); } 저의 Account Controller에서 /Account/{id}라는 주소로 GetMapping을 받겠습니다. 내부적으로는 JpaRepository를 구현한 accountRepositor.. [Java] Collections framework 이해하기 이번 포스팅에서는 Collections Framework에 대해 이해하는 시간을 갖도록 하겠습니다. 본 포스팅은 생활코딩님의 Java Collections framework를 참고하였습니다. (https://www.youtube.com/watch?v=KaPbVAxi5LE) 1.ArrayList import java.util.ArrayList; public class MainClass { public static void main(String[] args) { String[] objectArr = new String[2]; objectArr[0] = "1"; objectArr[1] = "2"; // objectArr[2] = "3"; ArrayList al = new ArrayList(); al.add(".. [Java] 제네릭 이해하기 안녕하세요. 오늘 포스팅에서는 JDK1.5 이후로 추가된 자바의 제네릭스에 대해 포스팅해보겠습니다. 1. 제네릭이란? Generics add stability to your code by making more of your bugs detectable at compile time. – Oracle Javadoc 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. – 생활코딩 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. – 자바의 정석 기본적으로 클래스 내부에서 사용할 데이터타입을 사전에 정의하지 않기 때문에 인스턴스 생성 시에 해당 클래스 안의 데이터 타입을 동적으로 넘겨줄 수 있습니다. 또한 .. [Database] 예제로 보는 데이터베이스 정규화 안녕하세요. 오늘 포스팅에서는 데이터베이스의 정규화에 대해 알아보겠습니다. 우선 본 포스팅에 앞서 사용한 자료는 이 링크에서 참조하였으며, 유튜브 생활코딩님의 강의를 기반으로 합니다. 1. 정규화란? 우선 기본적인 정규화의 의미를 살펴보면, 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라 합니다. 즉 데이터베이스가 크고 구조화되지 않은 상태라면, 이를 작고 잘 구조화시켜서 저희가 원하는 비즈니스 로직을 수행하는 데에 있어 이상이 없고 효율적으로 처리할 수 있는 데이터베이스 설계를 구축하는 것에 그 목적이 있습니다. 여기서 말하는 이상(문제)란 다음과 같습니다. 갱신 이상 ( Modification Anomaly ) 중복된 데이터 중 일부를 갱신할 때 의도치 않은 데.. [Spring] 전통적인 Spring의 Transaction과 JPA의 OSIV 전략 오늘은 Spring의 전통적인 Transaction 처리의 과정과 JPA의 OSIV전략에 대해 이해해보는 포스팅을 진행해보겠습니다. 스프링을 사용해보신 분이라면 @Transactional이라는 어노테이션을 많이 보셨을 겁니다. Transaction이란 어떠한 일을 처리하는 단위를 말합니다. 가령 저희가 "6번 게시글을 수정한다"라는 로직을 수행하려면 1. "6번 게시글을 가져온다" 2. "6번 게시글을 수정한다" 3. "수정된 6번 게시글을 DB에 commit 한다" 이렇게 하나의 로직의 처리 묶음을 하나의 Transaction이라 합니다. 그러면 Spring에서는 Transaction 처리를 어떤 순서로 진행할까요? 전통적인 Transaction 처리부터 알아보겠습니다. 저희가 Spring Applic.. 이전 1 2 3 4 5 6 다음