일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- fetch join
- Spring
- 스프링
- IOC
- 비기능적 요구사항
- 스프링 포매터
- 생성자주입
- 스프링부트 도커
- kotlin 리팩터링
- 스프링시큐리티
- open-session-in-view
- jpa lazy
- 스프링di
- 토비의 스프링
- ioc컨테이너
- 자바 필터
- jpa no session
- method refetence
- 동적파라미터
- Atomicity
- 그래프큐엘
- java predicate
- 기능적 요구사항
- 스프링 시큐리티 설정
- 소프트웨어의 품격
- spring formatter
- 도커 이미지 빌드
- 정적팩토리메서드
- 수정자주입
- kotlin ::
- Today
- Total
목록분류 전체보기 (109)
공부기록
일정관리 웹 프로그램을 만들고 있다고 가정하고,public api 를 통해 "특정 사용자의 특정 카테고리 안에 있는 할 일들을 웹페이지에 렌더링 해줘." 같은 요청을 받았다 가정하자.요청에는 특정사용자의 이름과 특정 카테고리를 포함한다.e.g. http://gracelove.kr/todo/{username}/{category}이런 요청을 받으면 내부적으로 다음과 같은 일을 한다.user와 category 를 추출한다.1에서 추출한 username 과 category 에 해당하는 todo 목록을 가져온다.2에서 가져온 todo 목록을 기반으로 html 페이지를 생성한다.사용자에게 http 응답을 준다.이걸 코드로 표현해보자면..// 요청 엔트리포인트fun getTodoList(request: Request..
책 '소프트웨어의 품격'을 읽고 적는 글입니다.소프트웨어의 품질소프트웨어의 전반적인 가치가 아닌, 특정 특성을 말한다.모든 특정 특성을 품질로 취급할 수는 없다. 예를 들어 '언어는 자바로 작성되어야한다'는 분명히 특성을 이루는 요소지만, 품질이라고 할수는 없다.품질은 어떻게 측정해야하는가?생각해보면 너무나도 많다. 사용자에게 직관적인가? 유지보수는 얼마나 쉬운가? 사용자가 만족하는가? 등등..따라서 전문가들은 크게 두 가지 특성으로 품질 기준을 분류한다.1. 내적 품질, 외적 품질2. 기능적 품질, 비기능적 품질내적 품질과 외적 품질외적품질?최종 사용자가 시스템과 상호작용하는 동안 인지할 수 있는 품질내적품질?소스 코드를 봐야만 알 수 있는 품질다만, 외적품질과 내적품질의 경계는 명확하지 않다.최종 사..
이진탐색'정렬된 리스트'에서 특정 값을 빠르게 찾는 알고리즘.리스트를 반으로 나눠서 목표값이 어느 쪽 절반에 속하는지 결정하고, 나머지 절반은 버리면서 목푯값이 포함될 가능성이 있는 절반을 탐색한다.값을 찾을 때까지 이 과정을 반복한다. 어느 쪽에 속해야하는 지 결정해야하기 때문에 기본적으로 정렬된 리스트여야한다.배열 A 에서 i A[i] 문제 정의다음과 같은 오름차순으로 정렬된 배열 A 가 있다.[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]이 배열 A 에서 숫자 10을 찾아보자.문제 해결앞서 말한 것처럼 이진 탐색은 리스트를 반으로 나누어 탐색하기 때문에 탐색공간의 중앙값을 선택하며 시작해야한다. 이를 코드로 나타내면 다음과 같다.var indexHigh = list.size - 1 // 탐..
원자성. 여기서 말하는 원자성이란 더 이상 쪼갤 수 없다는 의미다. 원자성에 앞서 트랜잭션에 대해 간단히 정리하자. What is transaction 하나의 작업단위로 볼 수 있는 쿼리들의 집합이다. 예를 들자면 송금을 들 수 있다. Transaction BEGIN 돈을 보내는 사람의 계좌의 잔액을 읽는다. (SELECT) 돈을 보내는 사람의 계좌에서 돈을 출금한다. (UPDATE) 돈을 받는 사람의 계좌에 돈을 입금한다. (UPDATE) Transaction COMMIT OR ROLLBACK 트랜잭션 안에 있는 쿼리들은 모두 성공해야한다. 만약 실패하는 쿼리가 있다면 트랜잭션 내에 있는 모든 쿼리들의 결과는 롤백되어야 한다. 커밋이 되면 변경사항을 기록한다. 그런데.. 커밋이 된 게 아니라, 아직 트..