전체 글

모든 사람들은 욕구가 있다.욕구는 절대적인 욕구와 상대적인 욕구로 나뉜다.기본적으로 생리적 욕구(식욕, 수면욕, 성욕)와 같은 욕구는 절대적이라고 말할 수 있다.반대로, 비 생리적 욕구는 사회적 위치에서 비교를 통해 생성되기 때문에 "상대적으로 경험되기 쉽다!"라고 말할 수 있다. 기본적으로 몸의 호르몬 작용과 같은 것들을 통해, 모든 욕구가 만들어질 것이지만, 이들을 모두 분석하기에는 어려움이 있다.때문에, 기본적인 몸의 호르몬 작용과 같은 것들을 바텀, 그리고 그로 인한 행위, 감정같은 것들을 탑이라 하자면, 다운-탑, 탑-다운으로 여러 행위들을 평가하기에는 많은 공부를 하지 않고는 무리가 있다고 생각한다. 때문에, 귀납적 방식을 통해 사람들의 생각을 평가해 보는 것도 나쁘지 않은 것 같다. 바텀의 ..
선언적으로 불변식을 간단하게 검증할 수 있다.각 계층 사이 파라미터에 대한 유효성 검사를 실시할 수 있다. 1. 어노테이션들어노테이션설명적용 가능 타입@NotNull해당 필드가 null이면 안되며 필수 입력 값모든 참조 타입 (객체)@NotEmpty문자열이나 컬렉션이 비어 있으면 안된다.. (null과 빈 값을 모두 허용하지 않음)String, Collection, Map, Array@NotBlank문자열이 공백을 포함한 빈 문자열이면 안된다. (공백만 있는 경우도 허용하지 않음)String@Size문자열, 컬렉션, 배열 등의 크기나 길이를 제한한다.String, Collection, Map, Array@Min숫자의 최소값을 제한한다.int, long, short, byte, BigDecimal, Big..
· 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/3883541. 걸린 시간오랜 시간2. 트리거트리가 홀짝, 역홀짝 트리 중 하나가 되려면루트가 될 수 있는 노드가 한개만 존재해야 한다.import java.util.*;class Solution { static int[] edgeCnts; static List[] tree; public int[] solution(int[] nodes, int[][] edges) { initialize(nodes, edges); return solve(nodes); } private int[] solve(int[] nodes) { int[] ans..
· 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 걸린 시간40분2. 트리거Map 구조로 User 정보를 관리해주고, List에 행동들을 추가해마지막에 출력해주면 된다. 카카오 문제가 슬슬 적응이 되는 것 같다.import java.util.*;class Solution { static Map users = new LinkedHashMap(); static List results = new ArrayList(); public String[] solution(String[] recor..
· 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 걸린 시간1시간 30분2. 트리거후보키 조합을 모두 뽑고, 최소성과 유일성을 검사한다.이때, 최소성 평가에서 주의할 점이 있다. 03이라는 후보키가 있을 때, 0123을 검사하기 위해서 String의 contains를 쓰면, 0123에서 0과 3이 붙어있지 않기 때문에, +1이되게 된다.즉, 0과 3으로 나눈 뒤, 0,1,2,3에 0,3 둘다 포함하는지 확인하는 로직을 구현해야 한다.import java.util.*;class Solution { ..
· jpa
초기에는 이러한 방식으로 JPA에서 Impl이 붙은 Repository를 매핑해주는 방식을 사용했다.이러한 방식의 단점은 아래와 같다.Impl 클래스에 쿼리가 모여, 매우 큰 하나의 클래스가 되어버린다.합성을 통한 클래스를 생성하더라도 쿼리가 많아지게 되면 필드가 무수히 많아지게 된다.이러한 이유 때문에, 불편함을 느꼈다.이 단점을 해결하기 위해, Registry 객체를 하나 둠으로 코드 구조를 조금은 클린(??)하게 바꿀 수 있었다. 목적은 아래와 같다.Service 레이어에서는 Repository만을 의존주입 받아 사용한다.각 쿼리들을 개별적 클래스로 관리할 수 있다. @Componentpublic class QueryRegistry { private final Map, QueryClass> q..
· 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/49993#fn1 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1.걸린시간15분2. 트리거그냥 구현 쉬운문제이다.import java.util.*;class Solution { public int solution(String skill, String[] skill_trees) { return solve(skill, skill_trees); } private int solve(String skill, String[] skill_trees) { int skillSi..
· 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 걸린 시간50분 2. 트리거옳은 괄호인지에 대해, stack을 사용하여, 확인한다.나머지는 재귀로 그냥 조건을 따라치면 되는 쉬운 문제이다. 조건을 잘 못 읽어 오래걸렸다...StringBuilder로 최적화 또한 가능하겠다.import java.util.*;//7:50class Solution { public String solution(String p) { String answer = solve(p); return ..
쥐4
결국 이기는 개발자