2022/01 30

[Dev] 개발 과정에서 발생하는 오류의 80퍼센트는 오타가 아닐까?

오전에 잠시 프로젝트 코드를 손볼일이 있어서 리팩토링을 하는 중이었다. 하던 와중에 일부 코드에 많은 변경을 하게 되었는데 이후에 자꾸만 에러가 나서 이것저것 찾아보려고 했던 참이었다.그런데 아무리 생각해도 에러가 나는 것이 이해가 가지 않아서 다시 꼼꼼히 살펴보니 오타를 발견했다. 어째 가만보면 혼자서 묵묵히 코딩하면서 발생하는 오류의 80퍼센트는 오타이지 않을까 싶다. 물론 완성된 결과물로 내놓고 난뒤에 발생하는 오류에서는 아니겠지만 그게 아니라 혼자서 만들어가는 과정 중에 맞닥뜨리는 오류를 말할때라면 정말 맞는 말인것 같다.  예전에 이런 식으로 오타가 있을 거라는 생각을 하지 못하고 하루종일 빙빙 돌고 돌아서 말그대로 엄청난 삽질을 했던 경험도 여러번 있었다.(진짜 말그대로 지옥이었다.) 조금은 ..

개발 정보 2022.01.12

[Git] git branch & commit convention 정리

유용하게 쓸 수 있는 깃 컨벤션을 정리해놓았다. 우리 팀에서 쓰던 건데 팀원분께서 친절히 정리해서 올려주셨다. 기왕이면 지켜서 쓰자. 🧬 Git Branch Convention 형태 : 이름/기능이름_날짜 1️⃣ 각 단어 전부 소문자 - E.g. nickname/signin 2️⃣ 한 기능을 자주 수정해야 할 때 날짜 붙이기(날짜 양식 : YYMMDD) - E.g. nickname/signin_211125 📝 Git Commit Convention 형태 : 커밋타입: 커밋 메시지 - E.g. Add: 카카오 로그인 구현 커밋 타입 리스트 - Add: 기능 추가 - Fix: 코드 수정 ❗️ 잘못된 코드 수정 - Delete: 기능 삭제 - Refactor: 코드 리팩토링 ❗️ 잘 되어있는 코드 수정 - T..

인프라/Git 2022.01.12

[SpringBoot] java.nio.file.NoSuchFileException tomcat에러

흔히 발생할 수 있는 에러인데 이번엔 좀 특이한 상황에서 발생해서 기록해두게 되었다. 프로젝트를 진행하면서 게시판에 글을 작성했을때 사진도 여러장 첨부할 수 있도록 만들고 있었다. MultipartFile을 List로 묶어서 다루고 있었는데 잘 작동하는지 확인해보기 위해서 컨트롤러에 사진과 글을 전달하고 사진을 다시 프론트에서 던져주는 방식으로 작성하였다. List이 return 되는 셈이었다. 아마 사진이 찍히는게 아니라 toString() 처럼 명세라던지 아니면 path라던지 어찌되었든 뭐가됬든 뭐라도 찍히는지 확인해보고자 리턴했는데 위와 같은 java.nio.file.NoSuchFileException 에러가 발생했다. 그리고 에러 로그를 읽어보면 정말 흥미로운 내용이 있다. 에러 사유에 tomca..

[Dev] 백엔드 면접 질문 리스트

괜찮은 면접 질문 리스트가 있어서 저장해둔다! 언젠가 도움이 될 것 같다.  출처: https://oolaf.tistory.com/123 신입 면접보러 다면서 받았던 질문들입니다.컴포넌트와 모듈의 차이자바란 무엇인가자바의 구동원리 (컴파일 순서 같은 ?)JVM의 특징객체 지향과 절차지향의 차이점객체지향 언어의 특징(상속 추상 등등 …)상속과 구현의 차이점 과 특징 및 장단점오버라이딩 오버로딩의 차이점과 특징기본형 변수와 참조형 변수가 뭐가있나스택오버 플로우가 왜일어나나메모리 누수가 무엇인가메모리 누수를 막기위해 어떻게 해야하나static에 대해 설명해봐라싱글턴이 무엇인가 ? 디자인패턴을 아나 ?익명클래스와 익명객체를 아나?문자열을 끊어서 가져오거나 문자열 검색자료구조 (어레이 링크드 벡터 , 해쉬 맵 셋..

개발 정보 2022.01.09

[C++] C++ 에도 annotation이 존재할까?

요즘 springboot를 사용하면서 프로젝트를 진행중이라서 잔뜩 annotation을 사용중이었다. 그런데 문뜩 c++에도 annotation을 쓰는가? 에 대한 궁금증이 번졌다. 그래서 검색해보았는데 이렇다 할 annotation이라는건 없었고 그 대신에 generalized attributes 라는 기능을 쓴다고 한다. 아래 스택오버플로우의 답변들을 보면 뭘 말하는지 알 수 있다. https://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generalized-attributes/ C++11 generalized attributes Generalized attributes are a new C++11 core language feature that is..

C & C++/C++ 2022.01.03

[SpringBoot] io.jsonwebtoken.security.WeakKeyException: The signing key's size is 80 bits which is not secure enough for the HS512 algorithm.

jwt 를 만들려고 하고 있는데 에러가 발생했다. 키 사이즈가 작다고 해서 단지 그저 키로 주어준 문자열이 너무 짧아서 이런 에러를 낸다고? 라고 생각했는데 정말 그게 맞다. 해쉬 알고리즘으로 바꿀때 키도 같이 주게 되는데 그냥 길이를 좀 늘려주면 해결된다. 단순한 에러였다. 아래 블로그에서 좀 더 상세한 내용을 살필 수 있다. https://lemontia.tistory.com/1021 [springboot, jwt] jwt 로 토큰 생성, 유효시간 관리 하기 이번에는 jwt를 이용한 로그인 인증을 만들려 한다. 일전에 @EnableAuthorizationserver deprecated 되면서 찾던 중 jwt가 있어 이걸 활용하기로 했다(DB로 토큰유효성 확인도 안해서 더 나은거 같기도 하고 lemon..

2021년 회고 - 언제나 Follow the path.

2021년이 지나고 2022년이 왔다. 이제와서 2021년을 돌아보니 스스로 많이 성장한 시기였다는 생각이 든다. 내가 이루고 싶은 목표도 이루었다. 아주 작은 목표였는데 적어도 살면서 한번쯤은 받아봐야겠다고 생각하고 있던 무엇인가였는데 정말 받았다. 그런데 사람의 성질이 정말 신기한지라 받고나니 꽤 할만했다는 생각이 들었다. 그리 어렵지 않은 목표였다는 생각도 들었다. 어째 절대적인 수치의 노력이란 존재하지 않는다는 생각이 들었다. 언제나 대상에 따라 노력은 상대적이다. 그래서 불평할 수도 없고 불평해서도 안된다는 생각이 들었다. 노력의 상대성을 불평하는 순간 현실을 있는 그대로 받아들이지 못할 거라는 생각이 들었다. 상대적인 노력이라 하더라도 스스로 열심히 했다고 돌아볼 수준은 했다고 생각되어 만족스..

생각들 2022.01.02

[SpringBoot] Error resolving template [/index]

springboot 를 통해 작업을 마치고 무사히 build까지 끝났는데 막상 구동을 하고 localhost:8080 에 들어갔더니 제목과 같은 에러가 뜨면서 갑자기 에러로그가 찍히는걸 확인할 수 있다. 정말 간단한 이유인데 만약 작성한 컨트롤러 중에서 return "/index"; 이처럼 슬래쉬 / 를 붙여서 작성해준 컨트롤러가 있다면 슬래쉬를 제거하고 return "index"; 와 같이 작성해주면 된다. (이때 index.html 이 있다고 가정하는 상황이다.) 어느 블로그를 살펴보니 슬래쉬 때문에 경로를 찾지 못해 발생하는 상황이라고 한다. 슬래쉬를 빼버리면 된다. 아래 블로그를 참조하면 여기보다 더 친절하게 설명되어있다. https://dev-jwblog.tistory.com/40 [Spring..

반응형