Java
-
Spring cache redisProgramming/Spring boot 2021. 8. 31. 17:13
cache란? 데이터나 값을 미리 복사해 놓는 임시 저장소를 가리킨다. 이러한 cache는 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근 가능하다. 정리하면 디스크에 접근하여 정보를 얻어오는 것 보다 빠른 속도로 데이터 조회가 가능하다. 하지만 인메모리로 설정할 경우 휘발성이기 때문에 서버가 다운되면 데이터는 사라질 수 있다. 즉 영구적으로 보관하기 위한 용도가 아니다. 그래서 이걸 왜? 만약 메인 페이지에 랭킹과 관련된 데이터를 매번 조회한다고 가정하면 해당 웹 서비스에 접속할 때 마다 랭킹 정보들을 데이터베이스에서 조회할 것이..
-
[JPA] JPA 양방향 연관관계 세팅 및 주의사항Programming/JPA 2021. 8. 28. 19:28
JPA 양방향 연관관계 세팅 및 주의사항 Spring Data JPA와 JPA 양방향 연관관계를 세팅하고 사용 시 주의할 점에 대해서 정리하였다. 밑은 간단한 예제 코드를 준비하였다. User는 다양한 Knowledge을 등록할 수 있다. 정리하면 User는 N개의 Knowledge를 등록할 수 있다고 가정한다. 두 엔티티 간의 관계는 1:N이다. 소스 코드 User.java @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Long id; ..
-
[Java] DTO와 VO 그리고 EntityProgramming/Java 2021. 8. 1. 18:45
DTO와 VO 그리고 Entity DTO Data Transfer Object로 계층(Layer) 간 데이터 교환을 위해 사용하는 객체이다. 주로 데이터 교환을 위해서만 사용하기 때문에 특별한 로직을 가지고 있지 않고 getter/setter 메소드만 갖는다. public class UserDto { private String name; private int age; public UserDto(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getA..
-
[Spring Security] Spring Security + JWTProgramming/Spring Sercurity 2021. 7. 31. 21:04
Spring Security + JWT Spring boot + Security + JWT를 활용하여 회원가입/로그인 로직 및 권한 체크 기능을 구현하였다. 추가적인 기능은 구현하지 않고 오로지 user 도메인을 활용하여 회원가입과 로그인, 토큰 발급을 진행한다. [무료] Spring Boot JWT Tutorial - 인프런 | 강의 Spring Boot, Spring Security, JWT를 이용한 튜토리얼을 통해 인증과 인가에 대한 기초 지식을 쉽고 빠르게 학습할 수 있습니다., [사진] 본 강의는 Spring Boot, Spring Security를 이용해서 JWT 인증과 인가를 쉽 www.inflearn.com 전반적인 로직과 코드는 위 강의를 참고하였고, 필요에 따라 수정하여 재반영 하였다...
-
[Spring Security] Spring Security 간단 정리Programming/Spring Sercurity 2021. 7. 27. 15:11
Spring Security Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter의 흐름에 따라 처리한다. Filter이기 때문에 Dispatcher Servclet으로 가기 전에 적용 된다. 이러한 Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서 보안과 관련된 로직을 일일이 작성하지 않아도 된다는 장점이 있다. 인증(Authorization)과 인가(Authentication) 인증 Authentication: 해당 사용자가 본인이 맞는지를 확인하는 절차 인가 Authorization: 인증된 사용자가 요청한 자원에 접근 가능..
-
[JAVA] Arrays.asList()Programming/Java 2021. 7. 18. 16:50
java.util.Arrays에는 배열을 조작하기 위한 static method들이 모여 있다. Arrays (Java SE 11 & JDK 11 ) Compares two int arrays lexicographically over the specified ranges. If the two arrays, over the specified ranges, share a common prefix then the lexicographic comparison is the result of comparing two elements, as if by Integer.compare(int, int), at a rel docs.oracle.com 그 중에 배열을 List로 바꾸는데 편리하게 사용할 수 있는 Arrays...
-
[Baekjoon Online Judge] 5430번: AC문제 풀이/Baekjoon Online Judge 2021. 7. 18. 15:47
5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 숫자를 버..
-
[JAVA] 코드를 올바르게 드러내는 방법Programming/Java 2021. 7. 16. 18:03
자바 코딩의 기술 6. 올바르게 드러내기 코드는 꼭 테스트하라. 아니면 사용자가 하게 된다. — 데이브 토마스, 앤드류 헌트 인간은 모두 실수를 한다. 얼마나 뛰어나든, 교육을 얼마나 잘 받았든, 경험이 얼마나 풍부 하든 가끔 버그가 있는 코드를 작성한다. Java에는 내장된 테스트 지원이 없지만 그 역할은 JUnit 프레임워크가 대신한다. JUnit 프레임워크는 테스트를 자동으로 실행하기 위한 사실상의 Java 표준이다. Java에서 단위 테스트 작성의 사실상 표준인 JUnit의 가장 최신 버전은 JUnit5이다. 테스트 정의를 위해서는 메소드위에 @Test 애노테이션을 추가하면 실행이 가능하다. 6.1 Given-When-Then으로 테스트 구조화 Person.java public class Pers..