분류 전체보기

spring

공통 response 포멧 구현

3월에 시작한 프로젝트부터 공통 response를 구현해 사용했고 마침 새로운 프로젝트를 진행하면서 조금 변형하는 김에 티스토리에 정리하고자 한다. 사실 이전까지는 프론트에게 response를 넘겨줄 때 포멧을 생각하지 않았다. 그냥 응답 data가 잘 보내지면 그것에 만족하는 삶을 살았는데 생각해보니 data 말고도 넘겨주면 좋은 것들이 있었고, 특정 포멧으로 모든 response를 보내면 더 통일감이 있을 것 같았다. Json 포멧 성공과 실패 상황일 경우에 상태를 알려주는 status, response code 값, message, data, timestamp를 항상 같은 형식으로 보내주게끔 했다. 사실 이전 프로젝트에서는 code 값을 httpStatus code로 사용했는데 성공과 실패일 경우에..

알고리즘/구현

이코테, 백준 - 3190 뱀

문제 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 사과를 먹으면 몸이 길어지는 뱀을 이동시키면서 자신의 몸에 닿거나 벽에 닿으면 종료되는 게임의 끝나는 시간을 구하는 문제였다. 문제 풀이 뱀의 머리가 먼저 이동하고 꼬리와 닿는지 확인 후에 꼬리를 이동해야 했고, 범위 지정을 N보다 클 때만 break하도록 했는데 이부분을 나중에 깨달아서 시간이 조금 걸렸다. 전체 map이 있고, 사과가 있다면 2, 뱀이 있으면 1, 아무것도 없으면 0으로 지정했다..

알고리즘/구현

이코테, 프로그래머스 - 자물쇠와 열쇠

문제 구현 문제로 NxN 자물쇠를 MxM 열쇠로 푸는 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 두 번에 걸쳐 문제를 풀었는데 처음에는 열쇠를 4번 회전하고, 각각의 상황에서 dfs를 이용해 한 칸씩 옮겨가며 unLock을 확인해 주도록 구현했는데 시간 초과로 인해 60점이 나와서 다른 방법으로 다시 풀었다. dfs보다 훨씬 간단한 방법이었는데, N+(2*M) 사이즈의 비교용 map을 만들어 가운데에 자물쇠를 놓고 열..

DevOps/Docker

docker 명령어 - compose, image, push, pull, login

docker-compose.yml으로 빌드 (image 변경) docker-compose up docker-compose up -d --force-recreate --build 안쓰는 docker image, container 전체 삭제 docker system prune docker image 이름, 태그 변경 docker image tag [변경할 이미지] [바꿀 이름, 태그] docker push docker push [docker hub에 올릴 이미지 이름] 그 외 로그인, pull docker login docker pull [이미지 이름] pull 할 이미지는 public이거나 private일 경우 권한을 가지고 있어야 접근 가능(login)하다.

spring

멤버 필드에 의존성 주입 시 static 사용하면 안되는 이유

static을 사용하면 해당 필드는 Heap 영역이 아닌 Static 영역에 할당되며 프로그램이 종료될 때까지 프로그램이 메모리에 올라와 있는 동안 계속 존재하게 되어 시스템에 엄청난 부하를 주고 성능 이슈를 유발하게 된다. final 까지만 써서 재할당이 일어나지 않게만 해주고 멤버 필드에 static은 되도록이면 사용하지 말것! + util은 static으로 만드는게 좋다고 한다. 참고 링크 https://gf0308.tistory.com/m/14 [Spring] 스프링에서 멤버 필드에 의존성 주입을 표현할 때 'final'은 괜찮지만 'static final'은 안되는 (참조: https://djkeh.github.io/articles/Why-should-final-member-variables-b..

DB

MySQL 접속 오류

원래 하던데로 mySQL 정보를 properties에 저장하고 실행했는데 public key retrieval is not allowed ... 라는 오류가 발생했다. 뭔가 했더니 8.0 이후 버전부터는 jdbc 주소에 allowPublicKeyRetrieval=true의 설정까지 해줘야 한다고 한다.

카테고리 없음

spring security (2), jwt

jwt JSON 객체를 사용해서 토큰 자체에 정보를 저장하는 Web Token으로 클라이언트에 저장된다. (탈취 가능성 있음) JwtFilter 이 필터는 SecurityConfig의 필터체인에서 UsernamePasswordAuthenticationFilter 전에 등록된다. @Component @RequiredArgsConstructor public class JwtFilter extends GenericFilterBean { private final JwtProvider tokenProvider; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExcep..

git

git push 권한 없음

git kraken을 사용하던 중... 분명 organization에서 git kraken 사용 허가(?)를 했는데도 push가 안됐다.. gitkraken push failed access denied organization 라는 에러가 떠서 ssh 키를 만들어 보기도 하고, remote 링크를 다르게 설정해 보기도 헀는데 모두 작동하지 않았다. 그러다 발견한 블로그에서 멤버 권한이 read로 되어 있을 수도 있다는 말을 보고 organization을 만든 팀원에게 물어보니 맞다고...권한을 write로 바꾸니 바로 해결된 오류였다. 이런 간단한 일이 안되는 경우에는 간단한 일이 원인인 경우가 많은 것 같다. 항상 의심하자! 하하 그래도 내 잘못이 아니라서 다행이다. 휴~

hahihi
'분류 전체보기' 카테고리의 글 목록 (15 Page)