분류 전체보기 49

1장 계층형 아키텍처의 문제는 무엇일까?

계층형 아키텍쳐란? 웹, 도메인, 영속성 계층으로 이루어져있다. 웹 계층에서는 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보낸다. 서비스는 비즈니스 로직과 도메인 엔티티의 상태 조회 및 변경을 위해 영속성 계층의 컴포넌트를 호출한다. 1. 데이터 베이스 주도 설계를 유도 웹 계층은 → 도메인 계층, 도메인 계층은 → 영속성 계층에 의존한다. 데이터 베이스 중심 아키텍쳐가 만들어지는 큰 원인은 ORM을 사용하기 때문이다. ORM에 의해 관리되는 엔티티들은 일반적으로 영속성 계층에 둔다. 이를 통해 영속성 계층과 도메인 계층에 강한 결합이 생긴다. 서비스는 영속성 모델을 비즈니스 모델처럼 사용하게 되고, 도메인 로직 뿐만 아니라, 즉시 로딩, 지연 로딩, 데이터 베이스 트랜잭션, 캐시 플..

[카카오 기출] 호텔 방 배정 풀이

알고리즘 Union-find 풀이 과정 1 ≤ k ≤ 10^12 이하이므로 long 으로 자료형을 설정한다. 주의사항 : 배열 같은 경우, index를 long으로 설정하지 못한다. → Map 자료구조 관리하여야 한다. 어려웠던 점 : parent를 찾을 때 일반적으로 배열을 사용했는데 map 자료구조를 떠올려야 했다. 시간초과 난 부분 맨 처음에 Map을 parent[i] = i 와 같은 식으로 k범위 까지 초기화 시켜줬는데, 시간초과 난다. parent를 계속 갱신 시켜주며, 가장 가까운 호텔을 parent로 다시 갱신한다. 코드 import java.util.*; class Solution { public Map parent = new HashMap(); public long findParent(l..

[백준] 1823 수확 풀이

알고리즘 DP 풀이 과정 n이 최대 2000이므로, 브루트 포스는 안될 것 같다. → 자연스레 DP를 하는 방향으로 갔다. DP는 작은 문제를 → 큰문제로 확장시켜 나가는 방식이다. 즉, 크기를 확장시키는 순서가 있어야 한다. ex) 13152 같은 경우, 양 끝쪽만 빠져나가는 것을 확인 할 수 있었다. 따라서 다음과 같은 점화식을 도출해냈다. BaseCode가 중요한데, start==end 일 경우, 맨 마지막 숫자이므로, dp[start][start] = arr[start] * n이 된다. 이를 코드로 옮기면 다음과 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ..

[백준] 2151 거울설치 풀이

알고리즘 BFS 풀이 과정 조합 개수로 반복 DFS를 돌리면서 해볼까 생각했는데, 이는 N ≤ 10 정도 일때만 통과한다. 지금은 1≤ N ≤ 50 이므로 시간 초과 또는 메모리 초과가 난다. 다른 풀이 방법을 생각했어야 했는데, 한쪽 문을 start 지점으로 정하고, 다른 문을 만날때까지 BFS를 진행한다. PriorityQueue는 거울의 최소 개수로 정렬되게 한다. ! 를 만나면, 방향을 바꿀 수 있다. 즉 90도 방향을 바꾸고 PriorityQueue에다가 넣어준다. ‘*’ 를 만나면 벽이므로 이동할 수 없다. 그 외 다른 것들은 방향을 직진해서 갈 수 있다. 이를 코드에 옮겼고, 다음과 같이 같다. 트러블 슈팅 원래는 코드를 다음과 같이 짰었다. 이 조건을 통해 90도 체크가 되는 지 확인했었다..

[백준] 2255 합분해 풀이

알고리즘 다이나믹 프로그래밍 풀이 방법 dp[i][j] = 현재 합은 i이고, k개의 수가 남았을 때 경우의 수. ex) dp[20][2]일때, dp[20][2] = dp[20][1] + dp[19][1] + dp[18][1] + … 로 표현할 수 있다. 해당 식을 일반화 한다면, dp[i][j] = dp[i-j][k-1] ( 0≤ j ≤ i ) 이다. dp의 base 식은 dp[0][0] = 1이다. 0을 만들기 위해서 남은 수가 없을 때 경우의 수는 1가지이기 때문이다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; ..

[대만4박5일] 2일차 예스폭진지 투어

2일차에는 투어를 다녀왔다. 진과스는 볼게 없다고, 굳이 안봐도 된다 길래 패스하려고 했는데, 예스폭지 투어는 이미 마감되었다. ㅎㅎ.. 날씨 상황보고 그바로 전날 결정할라고 했는데, 정말 선택안하면 못갈거같아서 2일전에 예약을 하였다. 이럴때 가끔 p의 단점이 보인다. 하지만 포기 못한다. ㅎㅎ 얼렁뚱땅 어떻게든 잘 굴러가는 내인생 예스폭진지 투어는 예류 지질공원 스펀, 스펀 폭포, 진과스, 지우펀을 줄여서 말하는 것이다. 어쨌든 이거때문에 7시 반에 일어났다. 재빨리 화장을 하고, 곱창국수와 흑당 버블티를 아침으로 조졌다. 오늘 버스가 만석이라고 했다. 사람이 정말 많나보다.. 버스에서는 나는 멀미가 잘난다. 그래서 핸드폰도 못하고 거의 수면제 먹듯 잠이온다. 하지만 가이드 님의 주옥같은 멘트를 하나..

여행/국외 2023.12.14

[대만4박5일] 1일차 타오위안 공항 - 메인역 - 단수이

엄마랑 두번째로 이번년도 해외여행을 갔다왔다. 대만으로 여행지를 잡은 이유는 1. 너무 추워서 2. 청주공항에 가는 곳이 한정적인 이유였다. 사전에는 어느 때와 같이 공항, 숙박, 여행 보험, esim, 출입국 심사 정도만 준비하고 갔다. 아침 8시 50분 비행기였는데, 안개가 너무 많이 껴있어서 출국할 수 있을 지 의문이었다. 역시나 지연되었고, 30분정도 후에 날씨가 개자 탑승할 수 있었다. 대만에 내리니, 완전히 덥지도 습하지도 않은 쨍한 날씨가 펼쳐져서 행복했다. 한국의 겨울은 추위를 많이 타는 나에게 너무 지옥이다.. 일단 대만 여행지원금을 뽑으러 갔다. 환전을 하기 전에, 얼마정도 예산을 지출할지 예상해보기 위함이다. 근데, 엄마도 나도 똥손이기 때문에 역시나 되지 않았다. 내 기계는 심지어 ..

여행/국외 2023.12.14

[TrobleShooting] JWT signature does not match locally computed signature.

msa를 구축하다가, token 유효 검증 부분에서 signature가 맞지 않는 다는 에러가 떴다. [apigateway-service] [ctor-http-nio-2] c.e.a.config.Authorization Header Filter : JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted. 해결법 다음과 같이 secretKey 를 secretKey.getBytes()로 바꾸어주니 정상 작동하였다. public String generateToken(final String userId) { return Jwts.builder() .setExpir..