일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적파라미터
- 자바 필터
- fetch join
- 스프링di
- 생성자주입
- kotlin ::
- jpa lazy
- 도커 이미지 빌드
- 스프링 시큐리티 설정
- 스프링부트 도커
- 스프링
- 수정자주입
- 정적팩토리메서드
- 비기능적 요구사항
- 그래프큐엘
- kotlin 리팩터링
- method refetence
- open-session-in-view
- ioc컨테이너
- 스프링 포매터
- 소프트웨어의 품격
- spring formatter
- Spring
- 스프링시큐리티
- Atomicity
- 토비의 스프링
- jpa no session
- IOC
- java predicate
- 기능적 요구사항
- Today
- Total
목록Computer Science (22)
공부기록
책 '소프트웨어의 품격'을 읽고 적는 글입니다.소프트웨어의 품질소프트웨어의 전반적인 가치가 아닌, 특정 특성을 말한다.모든 특정 특성을 품질로 취급할 수는 없다. 예를 들어 '언어는 자바로 작성되어야한다'는 분명히 특성을 이루는 요소지만, 품질이라고 할수는 없다.품질은 어떻게 측정해야하는가?생각해보면 너무나도 많다. 사용자에게 직관적인가? 유지보수는 얼마나 쉬운가? 사용자가 만족하는가? 등등..따라서 전문가들은 크게 두 가지 특성으로 품질 기준을 분류한다.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 트랜잭션 안에 있는 쿼리들은 모두 성공해야한다. 만약 실패하는 쿼리가 있다면 트랜잭션 내에 있는 모든 쿼리들의 결과는 롤백되어야 한다. 커밋이 되면 변경사항을 기록한다. 그런데.. 커밋이 된 게 아니라, 아직 트..
기억해야 할 만한기억해야 할 만한 글귀들을 적는 공간입니다. 개인적으로 이해하기 쉽게 바꾼 말도 있으니, 맥락만 봐주시길 바랍니다. 문서의 변경이 있을 수 있습니다. 모든 소프트웨어 모듈에는 세 가지 목적이 있다. 실행 중에 제대로 동작하는 것. 이것은 모듈의 존재 이유다. 변경을 위해 존재한다. 대부분 모듈은 생명주기 동안 변경되기 때문에 간단한 작업만으로도 변경이 가능해야 한다. 코드를 읽는 사람과 의사소통하는 것이다. 특별한 훈련 없이도 개발자가 쉽게 읽고 이해할 수 있어야 한다. 프로그래밍 패러다임의 공존. - 절차형 패러다임과 객체지향 패러다임은 공존할 수 없는가? 예를 들어 절차형 패러다임 과 객체지향 패러다임 이 공존할 수는 없는 걸까? 서로 다른 패러다임이 하나의 언어 안에서 공존함으로써 ..