전체 글
☆시작
자동 import: 설정(Settings -> Editor -> General -> Auto Import)에서 Add unambiguous imports on the fly를 체크하면 클래스 이름만 쳐도 알아서 생깁니다. 안 뜨면 Alt + Enter를 누르세요IntelliJ를 쓰신다면 Build Project (Ctrl+F9) 기능만으로도 컴파일 에러를 다 잡아낼 수 있습니다. 터미널로 나가는 시간을 줄이세요 "가장 깨끗한 상태에서 시작하기"시험 시작하자마자 docker system prune -a (사용하지 않는 도커 자원 싹 삭제) 한 번 치고 시작하세요. VDI 용량 부족으로 빌드 안 되는 어이없는 상황을 90% 막아줍니다.
오류시
2. VDI 환경에서 테스트 실패 시 대처법 (Troubleshooting)내 컴퓨터에선 됐는데 VDI에서 안 된다면, 90%는 '환경 설정(Infrastructure)' 문제입니다. 당황해서 로직을 건드리지 말고 아래 순서대로 체크하세요.① DB / Redis 연결 오류 (가장 흔함) 증상: Connection Refused 또는 Timeout 에러. 원인: 도커 컨테이너가 안 떴거나, 포트 설정이 다름. 해결: * 터미널에 docker ps를 쳐서 mysql, redis가 떠 있는지 확인하세요. application.yml의 url이 localhost:6379(Redis), localhost:3306(MySQL)인지 확인하세요. (VDI 환경에 따라 localhost 대신 컨테이너 이..
Git
[깃 주의사항]git add . 주의: target 폴더나 인텔리제이 설정 파일(.idea)이 같이 올라가지 않도록 주의하세요. (Spring Initializr가 만들어준 .gitignore가 있다면 괜찮습니다.)커밋 메시지 가성비: 너무 정성 들여 쓰지 마세요.feat: 새로운 기능fix: 버그 수정test: 테스트 코드 추가-----------------[브랜치]main: "언제든 배포 가능한 깨끗한 코드"feature/setup: "나는 환경 설정을 꼼꼼히 한다"feature/transfer: "나는 송금 로직과 그에 따른 테스트를 세트로 짠다"feature/concurrency: "나는 동시성 같은 심화 문제까지 고민한다"------------------[깃 사용법]① 프로젝트 초기 ..
online-store 커밋 기록
이렇게 커밋 기록을 따로 하게된 이유-> 실수로 aws엑세스키, db비번을 application.properties에 올린후 깃허브에 올린 보안문제 발생-> 비번 변경, 엑세스키 폐기후 재발급. -> 문제 재발생을 막기위해 gitignore에 application.properties추가후 커밋푸쉬.-> secretkey가 코드에 있어서 푸쉬 거부.->bfg를 이용해 application.properties에 대한 과거커밋내용만 수정하려 시도-> 커밋기록 자체가 날아간 사태 발생. 배운점-> 로컬, 원격에 commit기록이 있고, 그 버전으로 돌아갈수 있기에 버전관리는 이정도면 될줄 알았으나,bfg같은 위험한걸 할때는 원격레퍼지에 백업용 레퍼지를 만들어야 하겠다는것과 조심성을 배우게 된 기회였습니다. 참고..
[Orchestration -ECS] ECS로 배포하기 (kubernetes류)
1. nginx류와 서버코드 2개 이미지 빌드해서 도커에 넣기2. 그거 도커허브에 올리기(도커허브에서 통신함)3. aws의 ecs에서 클러스터 생성3.1 인프라선택 -> 대충 ec2 / fargate선택인데 우리 주니어 개발자는 자원 별로 안쓰니깐 fargate로 필요한만큼 빌려씁시다4. 테스크정의도커 compose같은 파일입니다. 형식 정해두기.대충 저희는 실행만 해보고, 영구적인 운영이 목적이 아니기에 안좋은 cpu와 메모리도 2gb만 써줍니다4.1 상태확인(healthcheck)CMD-SHELL, curl -f http://localhost:8080 || exit 1이런거 넣어서 5초마다 컨테이너 정상작동인지 체크기능도 넣기nginx도 쓸거면, 컨테이너 2개로 nginx컨테이너, 서버컨테이..
[알고리즘] 오답노트
한번이라도 까먹은 개념을 다시 적는 글입니다 !문자 연산은 'a'처럼ex) 10빼기문자a -> 10 - 'a'비트마스크 연산자or -> |and -> &자신과 비교or -> |= //자주씀//bfs비트마스크 and가 존재할때(? & ?) != 0 형식을 자주씀 //0010처럼 같이켜진것만 반환-중요x---------------------------------순회만 할거면 arraylist가 구현체중에 best
[알고리즘] BFS 오답노트
이 글은 제가 bfs를 하며 한번이라도 까먹은 개념을 정리하는 글 입니다메인에서 값 받는 형식-> main{ br, 행,열, tc 받기 값을 받을 자료형준비+ 전역변수 초기화 for(i { map등 입력받기//돈 먹는 최대갯수 문제였습니다메인에서 map받을때 첫 한번의 작업(cur x,y에 해당)(key 받고, 문좌표 받는등) 후bfs에서 new x,y(다음 좌표)에 해당하는 같은행동 처리 반복 후(key받고, 문 좌표 받는등) q.add로 new x 를 넘김메인에서 for문 2개를 씀.첫 for는 입력받기(map채우기)(여기서bfs 안씀(맵 다 받아야 해서)(문 체크안함(뒤 입력에서 열쇠 나올수 있음))두번째 for는 문 체크하며 bfs호출(for 반복만큼 호출)(bfs호출대신..
[알고리즘 - java] 1700 멀티탭 스케줄링
https://www.acmicpc.net/problem/1700 단순히 문제를 풀다가정답 코드를 보며 풀었음에도 풀며 들었던 작은 의문들과 어떤 정답을 스스로 알아내었는지 적어두려 합니다. {1. int remove = arrList.get(arrList.size()-1); 이 코드 부분.//정답 코드써주신분을 뭐라하는건 절대 아닙니다.! 좋은글 너무나 감사합니다.이 코드에 가장 마지막에 사용될 콘센트를 제거한다고 주석이 있었는데123 321로 들어오면arrlist가 123이 되고, 마지막 콘센트가 1이 아닌데..?의문을 가지고당장 빠르게 사용될 n개의 갯수내에서 가장 마지막콘센트 제거가 가장 효율적임을 알아내고나니,그제서야 왜 효율적인 방법인지를 납득했습니다. ★배운점: 확실히 직접 써봐야, 작..