본문 바로가기

전체 글

(88)
[Spring] 도메인 로직 패턴 - 도메인 모델,트랜잭션 스크립트 도메인 모델 패턴과 트랜잭션 스크립트 패턴 마틴 파울러가 재창한 두개의 개념으로 비즈니스 로직을 처리하는 2가지 패턴을 말한다. 책임 소재가 Domain Level이냐 Script Level이냐의 차이에 따라 구분된다. 도메인 모델 패턴 (Domain Model Pattern) 도메인이란? 다양한 설명들이 있지만 나에게 와닿은 정리는 "소프트웨어를 개발하는 대상 영역"이다. 도메인 모델이란? 도메인을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화 시킨 것 도메인의 핵심을 간략하게 단순화해서 표현할 수 있는 모든 것이 도메인 모델이다. 도메인 모델 패턴이란? Domain 부분에서 비즈니스 로직을 가지고 객체 지향의 특성을 적극 활용 하는 것을 도메인 모델 패턴이라 한다. 도메인 모델..
[DB] H2 Database H2 데이터 베이스란? 1. 개요 JAVA 기반의 오픈 소스 RDBMS(관계형 데이터베이스 관리 시스템)다. 주로 메모리에 데이터를 저장하는 용도로 쓰이며, 디스크에 데이터를 저장할 수도 있다. SQL 표준의 일부가 지원된다. 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면을 제공한다. 모든 데이터 조작은 트랜잭션에 기반한다. 테이블 수준의 잠금과 MVCC(다중 버전 동시성 제어)가 구현되어있다. 주의 : H2 데이터베이스의 MVCC 옵션은 H2 1.4.198 버전부터 제거되었다. 2. 구동 방식 Server Mode Disk 기반으로 대부분의 데이터를 디스크에 저장하고 캐시로 메모리를 사용한다. Embedded Mode In-Memory 기반으로 메모리에 데이터를 저장하고 프로그램을 닫으면 데이터..
[Spring boot] view 환경설정 해당 내용은 [인프런] 실전! 스프링 부트와 JPA 활용 1 - 웹 애플리케이션 개발의 내용을 정리 한 것입니다. 출처 : 실전! 스프링 부트와 JPA 활용 1 Welcome Page란? 사용자가 웹사이트의 처음 접속했을 때 접하게 되는 페이지 Welcome Page 만들기 HelloController.java @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data","hello!"); return "hello"; } } 1. Model 객체를 이용해서 view단에 객체를 전달해줄 수 있다. 2. 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 ..
[Programmers] LV2 - 소수 찾기 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제 파악 주어진 숫자 문자열을 가지고 소수를 몇 개 만들 수 있는지 구하는 문제이다. 순열 + 소수 찾기 문제인 것인데 1. 소수 찾는 방법은 에라토스테네스의 체로 최대 범위 10,000,000까지의 소수를 미리 구했다. ( 10,000,000 까지 구한 이유 number의 최대길이는 7 , 범위는 0~9로만 이루어져 있기 때문에 최대 9,999..
[Programmers] LV2 - 가장 큰 정사각형 찾기 https://programmers.co.kr/learn/courses/30/lessons/12905 코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr 알고리즘 분류 : Dynamic Programming 문제 파악 주어진 배열에서 1로만 이루어진 가장 큰 정사각형을 찾아서 그 정사각형의 넓이를 반환하면 되는 문제이다. 문제 해결 과정에서 처음은 Brute force 하게 풀어보았고 두 번째로 DP로 문제를 해결하였다. 1. Brute Force ( 정확성 All pass , 효율성 All fail) 더보기 class Solution { public int solution(int [][]board) {..
[Programmers] LV2 - 배달 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 문제 파악 문제의 그림에서 주어졌듯이, 그래프로써 문제를 풀어나가야 한다는 것을 유추할 수 있다. 또한, 문제를 읽다 보면 "각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다."라는 구문이 있다. 그래서 처음에는 "무방향 + 그래프" => 플로이드-와샬 알고리즘을 선..
[Spring] JPA - No Property Found for Type Exception JPA를 사용하여 개발 중에 "No property xxx found for type xxxx!" 라는 에러가 뜨면서 골머리를 썩혔다.. xxx는 각자 다를 수 있겠지만.. underscore(_)를 엔티티의 레퍼런스 필드의 프로퍼티를 조회하는 예약어로 사용하고 있기 때문에 사용을 피하라고 되어있어서 다음과 같이 변경하였다. 그다음에 Model에서 @Column Annotation을 사용하여 name을 지정해주고 기존 Property는 동일하게 Underscore를 제거하여 해결하였다. 참조사이트 : https://stackoverflow.com/questions/19583540/spring-data-jpa-no-property-found-for-type-exception
[Programmers] LV1 - 숫자 문자열과 영단어 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제 파악 주어진 문자열 s에서 영단어로 되어있는 숫자 문자열을 숫자로 바꿔서 정수 값을 반환하는 문제이다. 문제를 풀고 보니 대부분 다 비슷하게 푼 거 같은데 숫자 문자열 배열 하나와 숫자 배열 하나씩 선언하여 s를 replaceAll 하여 바꿔나간다. 더보기 class Solution { public int solution(String s) { i..