전체 글 63

[TIL] try-catch-resource 와 AutoClosable

오늘도 평화롭게 try-catch문으로 코드를 짰는데 코드리뷰를 받다가 inputstream을 close하지 않았다는 사실을 알게되었다. 사용했던 resource객체는 마지막에 finally로 반드시 닫아줘야 하는데, 놓쳐버린 것이다..! 이렇게 수동으로 close해야 되는 경우들은 놓치는 일들이 발생한다. 이러한 일을 방지하기 위해 사용할 수 있는 구문 // 기존 try() { //리소스 객체를 사용하는 코드 } catch (Exception e) { e.printStackTrace(); } finally { try() { 객체.close(); } catch(Exception e) { e.printStackTrace(); } } // auto closable try(리소스 객체를 사용하는 코드) { }..

TIL 2023.05.31

[TIL] filter와 intercepter

기초적인 것을 오늘 또 하나 배웠다...... 나는 그동안 spring의 영역과 일반 java의 영역을 잘 몰랐는데, 일을 하다가 filter는 spring의 영역이 아니라는 것을 확실히 알게되었다. 예전에 학원다니면서 배웠을 때는 크게 와닿지 않았던 것인데 일을 하며 filter를 직접 만들고 사용해보니 더 확실하게 알게 된 것이겠지. 필터를 사용해야겠다고 생각한 것은 호출되는 URI를 로그에 남기고 싶어서였다. 스프링의 기능중에 있으려나? (이것도 찾아봐야지.) 필터를 통해 로그를 찍고 싶었다. 인증 관련된 다른 것들은 둘째치고, 정리가 안되어 있고 로그보기가 너무 까다로운 서비스들은 개선해야 했으니... 로그를 보기 쉽게 URI를 남기는 작업부터했다. 필터는 요청이 들어왔을 때 dispatcher ..

TIL 2023.05.29

[TIL] @value 어노테이션에 null만 찍혔다.

오늘 또 하나 배웠다. 하드코딩된 부분을 application.yml파일에서 변수로 사용하려 했는데, @value 어노테이션이 계속 먹히지 않고 null만 찍혔다. profile이 제대로 작동하지 않은 줄 알았는데 아니었다. 원인은 해당 클래스가 new로 생성된 객체였기 때문이었다. @value 어노테이션은 Spring을 사용하는 것이기 때문에 컨테이너에 등록되어있어야 한다. 그런데 new로 생성되면 새로운 객체가 되기 때문에 적용이 될 수 없다. 또 한가지 💡 내가 @value를 사용하려는 클래스는 Spring을 사용하는 구간이 아니다. 그렇기 때문에 순수 자바로 이루어진 부분이기 때문에 어노테이션을 활용할 수 없었다.

TIL 2023.05.28

[TIL] jar파일 수정하고 다시 압축하여 배포하기

시간을 꽤 많이 들여 찾으려 노력했던 일인데 너무나도 쉽게 해결돼버렸다. 이걸두고 해결이라고 말하는게 맞나 싶은데... 당장 예정되어 있는 일정이 있어 일단 급하게 막아보았다. 이것도 TIL로 넣는게 맞나?... 아무튼 하나 또 배우긴 했다...... jar파일을 풀었다가 다시 압축하면 자꾸만 에러가 났다. MANIFEST.MF 파일의 문제는 해결되었는데, 그 파일에서 지정해준 main class (spring boot의 경우 boot main class) 를 찾지 못하는 에러... 1. jar 파일을 압축해제한다 [ jar xvf jarfile.jar ] 2. 해제한 폴더들을 jar파일로 압축한다 [ jar cvf newName.jar ./META-INF/MANIFEST.MF ] => ./META-IN..

TIL 2023.05.26

[TIL] jar파일 압축, 압축해제 커맨드 명령어

jar파일을 압축해제해서 파일하나를 수정하고 다시 압축해야 하는 상황에 놓여졌다. cmd 창 열기 압축풀기 jar xvf fileName.jar 압축 jar cvf fileName.jar {파일을 생성할 위치} 그런데 이렇게 압축을 하고나서 기동을 해보면 *.jar에 기본 Manifest 속성이 없습니다. 라는 에러가 찍힌다. 흠 역시 이렇게 압축해서는 기동할 수 없는 파일인걸까.....? MANIFEST 생성 옵션 jar xvfm fileName.jar {파일경로}/MANIFEST.MF 이미 MANIFEST.MF 파일이 있음에도 기동시에 해당파일을 찾지 못하면, 있는 파일의 위치경로를 잡아주면 된다.

TIL 2023.05.25

[TIL] ''은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. - 해결

커맨드 창에서 jar / java 등의 명령어를 사용할 일들이 있는데 자꾸만 이런 오류가 났다. 'jar'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 순차적으로 시행할 여러 스텝이 있었지만 결국 최종적으로는 환경변수를 바꾸는 일로 마무리된다. 그래서 나도 환경변수의 path를 수정했다. 💡시스템 속성 > 고급 > 환경변수 ✅첫번째, Path > 새로만들기 C:\Windows\system32 => 실패했다.. 근데 이 방법으로 다들 고친다고 하던데 일단 저는 fail.. ✅두번째, 더 찾아보니 변수에 JAVA_HOME을 추가해줘야 한다고 했다..!!! 정답은 %JAVA_HOME%\bin; 그리고 이것을 가장 첫번째에 두어야 한다.

TIL 2023.05.24

원티드 백엔드 프리온보딩을 신청했다.

https://www.wanted.co.kr/events/pre_challenge_be_8 프리온보딩 백엔드 챌린지 6월 | 원티드무료로 양질의 교육을 들어보세요! 챌린저만을 위한 다양한 혜택을 제공해드리고 있습니다.www.wanted.co.kr 역시 혼자 공부하는 것은 무리가 있다.. 싶기도 하고 좀 더 체계적으로 배워보고 싶은 차에 원티드에서 좋은 교육이 있어 신청해보았다. 사전과제까지 완료❤️‍🔥

얼떨결에 개발자가 된지 만 1년된 초보개발자의 회고록

회고록이라는 것을 여러 블로거들을 통해 보긴 했지만 그게 개발자들이 꼭꼭 쓰고있는 것이고, 추천하는 것이라는 것은 몰랐다. 어떻게 써야하는지 잘 모르지만 이제는 어떻게 써야하는가- 에 집중하기보다 일단 써보는 것으로 해보려 한다. 대외활동과 인턴을 포함하여 여러 업계를 경험해보았다. 그 중 이 아이티 업계는 가장 진입장벽이 높았고 또 어렵고 또 적응하기도 쉽지 않았다. 적응력 나쁘지 않은 난데... 어찌됐든 잘 버티고 많이 배워서 만 1년을 맞이했다. 박수박수👏 지난 1년을 돌아보며 어떤 일이 있었고 어떤 것을 배웠고 어떤 것을 느꼈는지 한번 정리해본다. 🎈 어떤 사람들을 만났나 🔔 회사를 다니면서 이렇게 좋은 사람들을 만날 수 있구나 를 처음 알게 되었다. 다들 너무 인품도 좋고, 무엇보다도 괴롭히기 ..

그냥일기 2023.05.23

키보드를 바꾸었다! GK898B 그것의 이름은 한무무 🎈

한무무에서 한무무로 바꾼 것이지만 엄연히 키압이 다르기 때문에 이것은 완전히 새로운 제품이라고 할 수 있다...!! 개발자로 전향한지 만 1년이 되면서 슬슬 키보드를 하나 장만해야겠다는 생각이 들었고 마침 생일이었기 때문에 키보드를 선물로 받았다. 그때 당시 무접점이 뭔지 키압이 뭔지 잘 몰랐기 때문에 (지금도 잘 모르지만;) 유튜브에서 보글보글 소리가 예쁘고 절대로 소음이 심하지 않은 것을 위주로 찾아서 보다가 선택하게 된 것은 한성 무접점 키보드. 그때는 키압 같은건 보지도 않고 색깔만 봤었는데 그리하여 선택된 것이 키압 50g 블랙이었다. 너무너무 이쁘고.... 소리도 묵직하고 너무나도 마음에 들어서 한동안은 회사에서 이어폰도 안꼈다 ㅎㅎ 소리가 너무너무 좋았으니까...호호.. 하지만 키압 50g은..

그냥일기 2023.05.22

[TIL] oracle system 계정이 잠겼습니다. 해결하기

sql developer를 쓰다가 dbeaver로 바꾸었는데 dbeaver에는 maria db만 연결시켜놨었다. oracle도 연결하려고 보니 system 계정이 잠겼다고,,, 다시금 maria db를 연결할 때의 악몽이 떠올랐지만..! 그래도 공부할 때부터 일하는 지금까지 오라클만 썼다고 금방 해결했다. 이래서 기본이 중요하다...... 이렇게 또 하나 배운다.... 💡 sys계정은 커맨드창에서 SQL에 연결하여 명령어를 실행시켜 unlock을 진행한다. ✅ cmd 창 열기 - 내가 사용하는 것은 cmder C:\Users\ λ sqlplus /nolog SQL*Plus: Release 18.0.0.0.0 - Production on 토 5월 20 23:51:46 2023 Version 18.4.0.0..

TIL 2023.05.21