일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- AssertJ
- mybatis
- F-Lab
- docker
- navercloud
- spring
- Thymeleaf
- junit
- 네이버클라우드
- Scheduler
- React
- object storage
- 에프랩
- NaverCloudPlatform
- Java
- DBDocs
- NooBLoL
- OrientalUnity
- ncloud
- Pinpoint
- 네이버 클라우드
- Enum
- NCP
- ngrinder
- Naver Cloud
- spring boot
- 회고
- Naver Cloud Platform
- Database
- papago
- Today
- Total
목록Java,Spring (17)
DevJong12
목차 글을 작성하기에 앞서서... 이 JUni이란게 뭔지에 대해서 앞의 아티클에 설명을 해놓았다. 해당글을 먼저 읽으면 좋을 듯하여 링크를 남겨놓는다.. https://devjong12.tistory.com/123 [JUnit] JUnit 이란?목차 1️⃣ 글을 작성하기에 앞서..사실 글을 적을까 말까 고민했는데, 회사에서 JUnit에 대해서 교육을 하게 될 계기가 생겨서 작성을 하다 보니 너무 많은 지식을 망각했다는 것을 깨닫게 되었devjong12.tistory.com 추가적으로 모든 코드는 아래의 Repository에서 확인이 가능합니다.https://github.com/donsonioc2010/my-junit-example GitHub - donsonioc2010/my-junit-exampleCo..
목차 1️⃣ 글을 작성하기에 앞서..사실 글을 적을까 말까 고민했는데, 회사에서 JUnit에 대해서 교육을 하게 될 계기가 생겨서 작성을 하다 보니 너무 많은 지식을 망각했다는 것을 깨닫게 되었다.. 잊으면 안되는데도... 심지어 최근에 코드를 작성할 일도 많이 없었어서 코드도 어떻게 작성하는거였지 하면서 약간씩 망각하게 되는걸 보고 잘쓰던거여도 기록을 해두자 생각을 하게 되어서 이렇게 글로 작성해두려 한다. 해당 시리즈는 JUnit에 대해서, 그리고 JUnit을 바탕으로 무엇을 할 수 있는지, JUnit의 응용방법, 라이브러리에 대한 소개를 진행할 예정이다.2️⃣ JUnit 그게 뭔데?JUnit이란 Java 프로젝트에서 단위 테스트를 진행하기 위한 프레임워크로, 코드의 작동 방식을 확인하고 변경으로 인..
목차 1️⃣ 개요 파일의 명칭에 대해서, 내가 간단하게 개발을 진행할 때 OriginalFileName에 대해서 저장을 하지 않았었다. 많은 웹사이트를 쓰면서 원본 파일명을 다시 돌려받은 경우가 거의 없다 보니, 신경을 쓰지 않았었으나 이와 관련되어 문제가 발생하여서 기록을 남겨보게 되었다. 환경은 JDK 17, Spring 3.2.0을 사용하였다. 2️⃣ 이슈내용 Window나 Mac에서 파일을 업로드를 하게 될 경우 들어오는 Multipart의 경우에는 별다른 문제없이 OriginalFileName이 기록이 되었으나, 이걸 DataBase에서 Query를 통해 OriginalFileName이 들어가있는 Column을 Like문으로 검색을 할 때 검색이 되지 않는 문제가 발생하였으며, 검색이 되지 않는..
이번주 월요일, 22. 10. 31부로 F-Lab 멘토링 프로그램의 종료를 하였다. 처음 F-Lab을 시작했을때는 와 6개월 너무 긴데 끝낼수있나? 라는 생각을 했었다. 더군다나 멘토링 초기에 멘토님께서 DeepDive하게 물어보는 질문들을 받을 때는 이거 완주 가능할까...? 인 생각 뿐이었고, 멘티가 없이 단독으로 멘토님과 단독으로 멘토링을 진행하다 보니 더 많은 노력이 필요했었던 것 같다. 해당 문제와 관련해서는 프로젝트에서 아쉬움이 남는데 아래에 기록하기로 한다. 멘토링이 끝이 났다는게 정말 기쁘긴 하지만 나 자신한테 많이 아쉽고 한심하다고 생각하기도 한다... 멘토링을 신청하게 된 계기 내가 F-Lab을 수강하게 된 계기는 내가 Java개발자로 일을 하는데 코어 지식을 너무 모른다는 생각을 많이..
개요 현재 기능 구현을 진행하면서 로그인을 임베디드된 톰캣에 세션으로 정보저장을 하고자 HttpServletRequest를 받아야 하는 메소드를 제작을 하였는데, 해당 기능에 대해서 테스트케이스를 제작을 하고 싶었다. 일반적인 Object의 경우라면 Mock을 사용하면 되지만 HttpServletRequest, Response도 가능한가? 생각하면서, 찾아서 알게된 MockHttpServletRequest와 MockHttpServletResponse에 대해서 기록하고자 한다. 참고한 자료는 아래의 북마크이다. https://www.baeldung.com/java-httpservletrequest-mock How to Mock HttpServletRequest | Baeldung Learn multiple..
개요 이번에 프로젝트로 소스를 지속해서 작성을 하면서 재밌어 보이는? 정확히는 내가 제대로 Stream에 대한 이해를 하지 못해 발생한 Issue를 알아보고자 한다. 많은 이슈가 있지만 해당 이슈를 따로 포스팅 하는 이유는 프로젝트를 진행하면서 어? 왜이러지? 하는 호기심과 Stream을 앞으로도 많이 써야 하는 것중 하나라 생각하나 , 너무 모르고 쓴것같아 작성하게 되었다. 이슈내용 람다식을 사용하면서 지역변수를 사용하려고 했으나 지역변수를 사용할 수 없는 문제였다. 내가 작성하려 했던 코드와 유사한 방식의 코드를 아래에 구현해봤다. public static void main(String[] args) { LamdaThread a = new LamdaThread(); a.testStream(); } p..
이번 멘토링의 주제는 JSP와 관련한 주제로 챕터 1 ~ 4 JSP의 전반적인 이해 챕터 9의 쿠키 총 5개의 챕터를 학습하고 멘토링을 진행한 주제이다. 22. 06. 14 ~ 22. 06. 27 총 2주간 최범균의 JSP 2.3 웹프로그래밍 기초부터 중급까지를 읽고 멘토링을 진행예정이다. [Request, Response를 WAS에서 어떠한 역할이 진행되는지?] Request 웹 브라우저가 웹서버(was, tomcat)에 HTML요청할 때 사용할 데이터 구성 규칙 해당 데이터들로 서블릿에서는 로직을 실행하는 등의 기능실행이 가능 Response 웹 서버가 웹 브라우저에 HTML등을 전송할 때 사용할 데이터 구성 규칙 [JSP페이지에서의 주석과 관련하여..] 주석의 경우에는 개발을 진행하면서 내용을 남기..
해당 오류사항은 제 맥북 셋팅 실수에서 발생한 오류인점 참고 바랍니다. 어디로 둘까 생각하다가 JDK설정과 관련한 문제라 JAVA로 카테고리를 정하였다.. [개요] Tomcat을 설치한 이후 정상적으로 작동이 되는지 확인하기 위해 Iterm을 통해서 Tomcat디렉토리로 이동한 이후 catalina.sh run 을 입력하여 실행해봄. 오류가 지속적으로 발생했었으며, 경로는 약간 가렸으나, 아래와 같은 방식으로 오류가 발생하였다. /util/was/tomcat/apache-tomcat-8.5.81/bin/catalina.sh: line 504: /zulu-8.jdk/Contents/Home/bin/java/bin/java: Not a directory [발생원인] 일단 추측이긴 하나, catalina.sh..
다음 수업까지 책을 다 읽어보겠다고 내가 약속을 하여.. 먼저 읽다보니 Article의 작성이 많이 늦어졌다. 일단 고민중이었던게 알고리즘 스터디와 관련해서였다. 과거에도 공부를 하면서 언어의 유리함은 Python이나 C++이 좀 더 유리하지 않나 라는 생각을 주로 했어서, 알고리즘의 경우 코테의 통과만을 위해서라도 변경하는게 좋지 않을지 물어봤었다. 들었던 말이 다른언어로 해도 상관은 없으나, 다시 자바에서 유사한 알고리즘을 사용하거나 할 경우 작성만 할 수 있다면 상관없을 거라는 의견을 받았다. 의견을 받고 든 생각은 일단 자바부터 확실하게 익히자는 생각을 하게 되었고, Java를 베이스로 스터디를 시작해보고자 한다. [ConcurrentModificationException] 처음 들었을 때 어떠한..
[System.exit, System.GC를 사용하면 안되는 이유] exit System.exit Runtime.exit shutdown.exit shutdown.halt0 실행 exit의 경우 위의 stack으로 실행이 된다. halt의 경우에는 JVM프로세스를 강제로 종료한는 메소드로, exit를 실행시 JVM을 종료하게 되는 것.. 운영중에 내가 만든기능으로 서비스가 종료하게 되는 결과가 발생하는 것. GC GC는 GarbageCollector를 인위적으로 호출한다. 해당 메소드는 Full GC를 실행하는 것 왜 New와 Old영역으로 구분을 하고 Major GC, Full GC로 분리를 했을지 생각을 해보면 좋을 것 같다. Full GC를 인위적으로 실행하는 것인데 그러면 수집이 이뤄지는게 비효율..
개발완료된 고객사 서버를 이관받아서 보던중, "MaxPermSize"가 반영이 된 고객사가 존재 하였다. 나도 상급자한테 오류내용에 대해 물어보다가 설정과 관련된 오류중에 해당오류를 발견해주셔서 설정이 되어 있는 점을 알게 되었다. 해당 고객사 사양은 JDK1.8, Tomcat9 필요가 없는 옵션인데 설정이 된채로 개발당시 적용을 하고 이관을 했던 것 같다. 필요가 없는 이유에 대해서 서술을 하고자한다 먼저 필요없는 이유를 알려면 Java 버전에 따른 구성을 알아야 한다. 좋은 이미지를 올려준 사이트가 있어서 이미지를 가져온다. 참고 주소 : https://blog.voidmainvoid.net/184 Java 7 HotSpot JVM 구조 Java 8 HotSpot JVM 구조 메모리에 대한 구조자체가..
현재 해결중인 사항이지만 오류사항이 되게 신선했어서 기록으로 남겨놓는다.. 회사의 솔루션을 납품하면서 발생한 문제인데 꽤 오래전에 납품했는데 여태 오류가 없다가 최근에 발생이 되서 확인을 해보았다. 오류사항이 DB의 테이블에 설정한 컬럼크기보다 더 많은 양의 글자가 입력되어 발생이 된 오류였다. 일단 급한대로 부랴부랴 컬럼의 크기를 늘리는 것으로 해결을 했다.(당장 사용을 해야하는데 안되는 걸..) [오류내용] 문제가 발생된 고객사는 해외고객사이며, 서버의 역시 해외에 있다. 또한 PC는 윈도우 서버를 사용하는 업체였다. 문제는 서버에서 발생이 된 것으로 추측이 된다. 현재 재직중인 회사의 솔루션은 대부분 한글, UTF-8를 사용을 하는 곳이 대부분 이었기에 크게 문제가 발생하지 않았었다. 그러면서 사용..
F-Lab의 3주차 멘토링을 받았던 질문들에 대해서 정리를 해놓고자 한다. 책을 많이 읽고 가야한다고 생각은 하는데 막상 쉽지가 않은 것 같다.. [동일성과 동등성] 동일하면 동등하지만 동등하다고 동일한 것은 아니다.. 동일성 동일의 의미로 두 개의 객체가 완전히 같은경우 (주소값이 같은 경우) 동등성 동등하다는 의미, 두개의 객체가 같은 정보를 가지고 있는경우(주소값은 다름) ==연산자를 통해 동일한지의 여부를 알수있으며, equals를 통해 동등한지 여부를 확인 가능.. 허나 equals를 통해 모든 것을 다 동등한지 여부를 확인할 수는없다 Object메소드에서는 동일성확인을 하는 것이기떄문. 오버라이드를 해서 재정의를 해야함. [equals와 해쉬코드의 차이점, 왜 숫자일까] equals는 객체의 ..
과거에 면접을 보면서 이런 기본적인 것조차도 몰라서 면접에서 탈탈털렸던 기억이 있어서 글을 썻던 기억이 있다. 근데 다시보니 무슨말인지도 모르곘고, 설명도 많이 틀린것 같아 옜날보다 나아진 지금 다시 글을 적어보고자 한다. String, StringBuilder, StringBuffer 세개는 모두 java.lang 패키지에 구성이 되어 있으며 선언은 아래와 같다. String public final class String implements java.io.Serializable, Comparable, CharSequence StringBuffer public final class StringBuffer extends AbstractStringBuilder implements java.io.Seriali..
Tech 일단 Stack과 힙부터...더 딥하게... https://yaboong.github.io/java/2018/05/26/java-memory-management/ [loop를 사용하게 될 경우 Garbage Collector의 실행관점에서 조심해야 할 이유] 일단 이문제는 가비지 컬렉터가 해당 값을 현재 참조를 하고 있는지 안하고 있는지 판단을 하는 방법에 대해서 부터 찾아봐야 할 것 같다... 음.. 이문제를 처음에는 Stack메모리, Heap메모리를 관련한 부분으로 생각을 해보려고 했다. 근데 그냥 단순하게 무한루프로 반복문을 탈출하지 못하는 상황을 생각해보면 되었던게 아닐까 싶다. 루프를 반복하며, 탈출을 못하게 될 경우 지속적으로 해당 반복문이 실행이 될것이고, 그 의미는 프로세스가 끝나..
단 한시간동안이었지만.. 질문을 받은 부분들이 전부다 생각조차 못해봤던 영역의 문제라 듣기만 해도 멘탈이 바사삭 부셔지긴 했는데 되게 재밌는 시간이었고, 왜 이정도 까지 생각을 못해봤을까 라는 생각을 했다.. 정리를 해주신 것들은 무조건 알아보고자 기록으로 남겨놓는다. 1. Primitive Type과 Reference Type이 Garbage Collector가 동작하게 될 경우 어떻게 작동이 진행 될까요? - 예시로 들어준 것은 int a = 1; Integer a = 1;일 경우 GC에서는 어떻게 동작되는지 내가 봐야할 부분은 선언당시에 JVM의 어느 메모리 영역에 생성이 되는지를 한번 확인해봐야 할 것 같다. - Primitive Type(기본형) 의 경우에는 JVM에서 Stack 메모리에 값이 ..
[JVM?] - JVM이란 Java Virtual Machine으로 자바 가상머신의 약자를 줄여 부르는 용어 - 자바 어플리케이션을 클래스 로더를 통해 읽어 자바와 함께 실행 - JAVA와 OS사이의 중개자 역할로 OS에 구애받지 않고 사용이 가능하게 함. - 메모리관리의 경우 Garbage Collection을 수행함 - 보통의 다른 하드웨어의 경우 레지스터 기반이지만 JVM의 경우에는 스택을 기반으로 작동됨 [왜 알아야 하는가?] 이건 나의 생각일뿐이다.. - 구동의 근본적인 원리를 알고 개발을 진행하게 되면 자원의 효율을 극대화가 가능하기 때문이지 않을까 싶다.. - 어느 영역을 사용하여 관리의 효율성 이나 좀더 안정적인 프로그램 실행 말이다.. [Java의 실행 단계] 프로그램 실행 OS에서 프로..