안녕하세요. 이번 시간에는 java의 replace와 replaceAll에 대해서 간단하게 짚고 넘어가도록 하겠습니다. 사실 저는 문자 c1을 문자 c2로 바꾸기 위해서 replaceAll을 주로 이용하는 편이였어요. 그런데, 아시다시피 replaceAll은 내부에서 정규식을 위한 트리를 만들어서 생각보다 느려요. 모든 문자 c1을 c2로 바꾸는 메서드는 없냐? 라고 물으신다면, replace가 있어요. 예제만 간단하게 보겠습니다. "maple story 205"가 있어요. 저는 공백을 '|'로 바꾸려고 해요. 그러면 oldChar는 ' '가 되고, newChar는 '|'가 되겠죠? replace의 1번째 인자에는 ' '를, 2번째 인자에는 '|'을 넣으면 되어요. 실행 결과는 위와 같아요. 그런데 왜 ..
전체 글 검색 결과
leading zero, leading space 이런 문제들은 string을 다루다 보면 한 번 정도는 보실 문제들입니다. 10개의 width에 string 값을 오른쪽 정렬을 하고 남은 공간들은 space로 채운다고 했을 때, 이렇게 코딩했었습니다. 예를 들어 string이 길이가 10 이하라고 해 보겠습니다. cho를 오른쪽 정렬하면 " cho"가 되고, 왼쪽으로 정렬하면 "cho "가 됩니다. 이걸 저는 padding 길이를 구하고 그 길이만큼 padding이 되는 문자열을 만든 다음에 왼쪽, 혹은 오른쪽에 붙이는 식으로 하였습니다. repeated는 캐릭터 하나와 얼마만큼 반복할 것인지를 나타내는데요. 내부에는 그냥 StringBuilder 등으로 이어 붙여버립니다. 결과는 요래 잘 나옵니다. ..
예전에 파이썬 배열 회전을 설명하면서 대강 짚고 넘어간 것이 하나 있었습니다. packing과 unpacking이였습니다. 이것을 간단하게 소개만 하고 넘어가겠습니다. 먼저, 매개 변수 앞에 *를 붙이면, packing이 일어납니다. 예를 들어서, 6번째 줄에 인자 [1, 2], [3, 4], [5, 6]을 보냈습니다. 그러면, 함수가 호출이 되고 매개변수로 넘어올 때, [1, 2], [3, 4], [5, 6]이 tuple로 묶어집니다. tuple은 iterable 하니까, for loop로 순회 가능합니다. 따라서, foo([1, 2], [3, 4], [5, 6])을 호출하면 [1, 2], [3, 4], [5, 6] 순으로 출력됩니다. 당연하게도 foo([1, 2, 3], [4, 5, 6])을 호출하면..
제가 개최한 2회 코딩 테스트는 1회 코딩 테스트와 비교했을 때 굉장히 어렵다는 의견이 많았습니다. 그 이유 중 하나는, 중간 정도였던 문제들의 까다로웠던 함정들 때문입니다. 가희와 btd5는 그런 면에서 골드 4였음에도 불구하고 상당히 까다로웠습니다. 체감 난이도는 1회 때의 가희와 로그 파일과 맞먹을 정도였으리라 추측됩니다만, 어디까지나 이건 제 추측일 뿐입니다. 거기에 5번은 철도 용어들이난무하다 보니 어질어질 했을 겁니다. 그러면 왜 체감 난이도가 높아졌는가에 대해 먼저 분석해 보겠습니다. 문제를 잘 읽어보시면 원점에서부터 공격 방향이 키워드임을 알 수 있습니다. 그리고 이것은 직선의 기울기와 매우 밀접한 관계가 있음을 알 수 있습니다. 여기까지 읽어보셨다면, 공격 방향의 x값과, 풍선 좌표의 x..
안녕하세요. 토이 프로젝트를 진행하다가 jwtFilter에서 예외가 발생했을 때, ControllerAdvice로 처리를 했습니다. 그랬더니 500이 떨어졌는데요. 서버에서의 로그를 확인해 보니 jwt의 사용 기한이 경과되었다와 같은 jwt exception이 그대로 떨어졌습니다. 저는, jwt token이 유효하지 않다면, fe단에서 왜 유효하지 않은지 알 수 있게 custom한 메세지와 응답 코드를 뿌려주려고 했습니다. 어떤 식으로 적용을 했는지 간단하게 소개해 보도록 하겠습니다. 공식 문서를 보면 Spring Security에서 Filter에 대한 개략적인 그림이 있어요. 이 그림과 서버에 나타난 로그를 보고 어떻게 코드를 바꿔야 할 지 고민해 보겠습니다. 먼저 GET /borrow는 인증이 되어야..
최근댓글