일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- object storage
- F-Lab
- spring boot
- papago
- spring
- 네이버클라우드
- AssertJ
- Enum
- ngrinder
- junit
- mybatis
- NooBLoL
- Thymeleaf
- 회고
- Pinpoint
- Naver Cloud
- ncloud
- NCP
- navercloud
- React
- 네이버 클라우드
- Scheduler
- NaverCloudPlatform
- 에프랩
- DBDocs
- Naver Cloud Platform
- Database
- docker
- Java
- OrientalUnity
- Today
- Total
목록F-Lab (17)
DevJong12
이번주 월요일, 22. 10. 31부로 F-Lab 멘토링 프로그램의 종료를 하였다. 처음 F-Lab을 시작했을때는 와 6개월 너무 긴데 끝낼수있나? 라는 생각을 했었다. 더군다나 멘토링 초기에 멘토님께서 DeepDive하게 물어보는 질문들을 받을 때는 이거 완주 가능할까...? 인 생각 뿐이었고, 멘티가 없이 단독으로 멘토님과 단독으로 멘토링을 진행하다 보니 더 많은 노력이 필요했었던 것 같다. 해당 문제와 관련해서는 프로젝트에서 아쉬움이 남는데 아래에 기록하기로 한다. 멘토링이 끝이 났다는게 정말 기쁘긴 하지만 나 자신한테 많이 아쉽고 한심하다고 생각하기도 한다... 멘토링을 신청하게 된 계기 내가 F-Lab을 수강하게 된 계기는 내가 Java개발자로 일을 하는데 코어 지식을 너무 모른다는 생각을 많이..
개요 서버에서 테스트를 계속 꾸준히 했던게 아니다 보니, 바이러스에 감염된 줄도 몰랐다. nGrinder Agent를 실행하려고 보니까 실행이 안되면서 알게 되었다. 뭐 당장 급한건 아니기 때문에 일단 Agent를 실행하는게 우선이라 생각을 하였다. 문제점 필자가 이미지를 마련해놓지를 못하였다... 당시에 문제를 해결하는게 우선순위였었고, 먼저 로그에 출력이 되는 경로로 가서 보니까 실제 파일이 존재하였다. rm -rf 로 삭제를 진행해보려 하였으나 삭제가 불가능했고 보니까 권한이 000이었다... chmod를 통한 수정도 불가능했었다... 로그 내용 nGrinder Agent를 실행하려고 하면 다음과 같이 /lib/libudev.so.6의 문제로 실행이 불가능하다고 지속적으로 출력이 되고 nGrinde..

개요 프로젝트의 기능 개발은 완료되었다 보니 부하테스트를 진행해보고자 nGrinder를 설치해보고자 하였다. 이포스트는 nGrinder의 Controller와 Agent의 설치과정을 작성하였다. nGrinder란? 어플리케이션의 부하 테스트 용도로 많이 사용되는 툴중에 하나로 nGrinder는 Controller와 Agent로 구성이 되어 있으며 두개를 같은 서버에 설치해도 되고 서로 다른 서버에 설치를 해도 된다. ※ 부하테스트이다 보니 추천하는건 서로 다른 서버에 설치를 하는 것을 추천하며 Agent는 어플리케이션이 존재하는 서버에 설치해야 한다. ※ 공식문서에서 3GB의 Free Memory라는 문구를 봤던 것 같은데 다시 찾으려니 못찾겠다.. 해당 문구를 보고 새 Controller서버를 분할 하..

이전 포스트 [refactor]MyBatis에서의 Enum활용기 (By.boolean) 포스트를 작성하게 된 계기(?) 기존에 사용하던 코드에 대해서 수정을 하고자 많은 소스들을 찾아 봤으나 예제가 없었다. 검색을 하는데 없다. 어..진짜없었다. 그래서, 기록이 필요해 보여 작성 devjong12.tistory.com 개요 일단 MyBatis에서 Enum을 사용하는 글에 대해서 추가적으로 작성하게 될 줄 몰랐다.... 완벽히 이해를 하지 않고 일단 되게 해보자!가 원인이 되었다. ㅋㅋ;;;; 역시...잘알고 써야하는데..ㅠㅠ... 1편에서의 문제점은 다음과 같다. 여러개의 Enum을 제작하게 되어도 단 한개만의 Enum밖에 활용이 불가능 해당 문제를 인지하게 된건 다음 기능을 손보게 되면서 Enum으로 ..

개요 프로젝트를 진행하면서 기존에는 @PostMapping과 @GetMapping에 대해서만 사용을 했었다. 그러다보니 대부분의 Mapping을 셋팅 할 때 URL을 남겨줘야 하는 문제가 있었고, /만 선언을 하는경우는 거의 없었다. 이후, 회원정보의 수정기능에 대해서 제작을 하면서 다음과 같이 Controller영역에 대해서 개발을 진행했었다 //기존의 소스 @PostMapping("/user/update") public ResponseDto userUpdate(@Valid @RequestBody UserInfoUpdateDto userInfoUpdateDto) { return userInfoService.updateUserInfo(userInfoUpdateDto); } 다음과 같이 Mapping을 셋..

포스트를 작성하게 된 계기(?) 기존에 사용하던 코드에 대해서 수정을 하고자 많은 소스들을 찾아 봤으나 예제가 없었다. 검색을 하는데 없다. 어..진짜없었다. 그래서, 기록이 필요해 보여 작성해보게 되었다. 기술스택 Spring Boot 2.7 MariaDB MyBatis 2.2.2 해당 내용이 들어간 Gradle은 아래 사진 참고바랍니다. 왜? 참고할만한 Reference가 없었는지? 먼저 DB에서 해당 Type에 대해서는 TinyInt라는 타입으로 사용을 하고 있다. 즉 0과 1로 저장이 되지만 매칭이 True와 False로 0또는 1을 저장하는 Type의 컬럼이었다. True, False를 통한 사용이 가능하다보니, 기존에 데이터를 주고 받을 때 사용한 DTO는 아래에 첨부하였지만, likeTyp..

해당 글은 DBDocs에 대해서 사용을 해봤다는 가정 하에 포스트를 작성하였습니다. 이전에 포스트를 작성한 것이 있어 링크 같이 첨부합니다. DBDiagram에 대해서 - DBML에 대해 알아야 하기떄문 DBDocs란? 사용법은? 프로젝트의 막바지 무렵이 되서야 해당 문서화에 대해서 자동화 할 수 있는 것을 알게 된 부분이 아쉽긴 하지만 해보면 재밌을 것 같아 진행을 하게 되었다. 자동화 방법에 대해서는 DBDocs에서 튜토리얼에 소개된 대로 진행을 해보았다, 현재 진행했던 프로젝트역시 자동화를 Git Action으로 진행을 했었고 튜토리얼의 방법역시 Git Action을 활용하다 보니 바로 진행하게 되었다. 진행중인 프로젝트에 바로 넣을 까? 라는 생각을 했는데 그냥 Repository를 따로 제작하였..

필자가 전에 포스트한 DBDiagram에 대한 글이 있다. DBDiagram를 제작한 회사에서 제작한 서비스로 보였고, 문서화를 내가 제작한 쿼리(dbml파일)을 자동으로 해준다는 게 흥미로워서 사용을 해보고 기록을 남기게 되었다. 아래는 필자가 현재 올린 서비스 ERD에 대해서 자동으로 문서화를 해주고 페이지로 제작된 화면이다. 위의 DBDocs 링크와 튜토리얼 링크를 같이 첨부한다. 작성자의 DBDocs 링크 , DBDocs 링크 설치 방법 dbdocs의 경우에는 npm또는 yarn을 통해 설치를 한 이후에 설치가 가능하다. 그렇기 때문에 node부터 설치를 진행해야 한다. 필자는 개발환경이 현재 Macbook Air M1을 사용중이다. 아래의 명령어 두줄이면 설치는 끝난다. // 1. Node 설치..

DBDiagram을 추천하게 된 과정 필자의 경우 과거부터 ERDCloud라는 DB툴을 사용해서 ERD를 그려오고 있었다. 최근에 라이엇게임즈에서 개발한 리그오브레전드(이하 `LOL`)의 게임정보를 가져와서 RESTful API서버를 개발하는 프로젝트를 진행하고자 ERD설계를 진행하려고 예전과 같이 ERDCloud를 접속해보았다. 들어가자마자 불편한 점이 예전과 다르게 불편한 점이 바로 보였고 다음과 같았다. 광고의 영역 단 한개다. 기존의 경우에는 ERDCloud에 광고가 없었으나 현재는 생긴 모습이었고 아래 사진을 보면 광고의 영역이 좀 크다.....많이...이해는 되었고, 제거할 수 있는 기능이 있어서 자주 애용을 했던 서비스다보니 금액을 지불할 의향은 있었다. 제거에 필요한 금액은 크지 않았으나,..

개요 프로젝트의 기능 구현을 하면서, 회원가입을 진행 할 때 메일을 발송해서 인증을 진행하는 기능을 제작하게 되었다. 문자열이 많지 않다 보니 메소드에서 String으로 제작을 진행하고 있었으며, SimpleMailMessage를 활용해 내용을 제작한 이후, JavaMailSender를 통해 발송을 하고 있었다. 기존 소스의 문제점 크게 두가지의 문제점이 존재했다. 1. HTML형식으로 메일이 오지를 않고 모두 문자열로 인식. 2. 메소드에서 내용을 제작하다 보니 내용의 수정이 필요할 경우 무조건적인 소스코드의 수정 기존코드로직 메일 발송을 담당하는 메소드 받아온 내용들을 SimpleMailMessage에 담아 발송한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19..
개요 프로젝트를 진행하면서 UPSERT에 대하여 알게 되어, 게시판기능에 대하여 제작을 하면서 사용해볼 기회가 생겨서 활용하게 되었다. 기능 구현의 완료 이후 테스트를 진행하면서 지속적으로 JdbcSQLSyntaxErrorException가 발생하였다. 해당 문제에 대한 포스트를 남기고자 한다. 프로젝트 기술스택 JDK 11 Spring Boot 2.7.2 Mybatis MariaDB, H2 사용 쿼리, 설정 사용중이던 DB url url: jdbc:h2:tcp://localhost/~/h2/nooblol 문제가 발생한 쿼리는 다음과 같다. INSERT INTO bbs_articles(article_id, bbs_id, article_title, article_read_count, article_cont..

개발 서버의 경우 Naver에서 제공하는 클라우드 서버를 통하여 서버를 구축을 진행하였습니다. F-Lab을 진행하면서 Naver의 Cloud서버금액에 대한 지원이 가능하여 Naver를 채택하게 되었습니다. 해당 포스트는 서버를 구성하는 과정에 대해서 기록을 위해 포스팅 하였습니다. 클라우드 서버생성은 아래 사이트에서 진행하였습니다. NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 먼저 구상을 했던 것은 DB와 Spring-Boot가 올라가게 될 서버는 서로 다른 서버를 사용하도록 ..
이번 멘토링의 주제는 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페이지에서의 주석과 관련하여..] 주석의 경우에는 개발을 진행하면서 내용을 남기..
다음 수업까지 책을 다 읽어보겠다고 내가 약속을 하여.. 먼저 읽다보니 Article의 작성이 많이 늦어졌다. 일단 고민중이었던게 알고리즘 스터디와 관련해서였다. 과거에도 공부를 하면서 언어의 유리함은 Python이나 C++이 좀 더 유리하지 않나 라는 생각을 주로 했어서, 알고리즘의 경우 코테의 통과만을 위해서라도 변경하는게 좋지 않을지 물어봤었다. 들었던 말이 다른언어로 해도 상관은 없으나, 다시 자바에서 유사한 알고리즘을 사용하거나 할 경우 작성만 할 수 있다면 상관없을 거라는 의견을 받았다. 의견을 받고 든 생각은 일단 자바부터 확실하게 익히자는 생각을 하게 되었고, Java를 베이스로 스터디를 시작해보고자 한다. [ConcurrentModificationException] 처음 들었을 때 어떠한..
F-Lab의 3주차 멘토링을 받았던 질문들에 대해서 정리를 해놓고자 한다. 책을 많이 읽고 가야한다고 생각은 하는데 막상 쉽지가 않은 것 같다.. [동일성과 동등성] 동일하면 동등하지만 동등하다고 동일한 것은 아니다.. 동일성 동일의 의미로 두 개의 객체가 완전히 같은경우 (주소값이 같은 경우) 동등성 동등하다는 의미, 두개의 객체가 같은 정보를 가지고 있는경우(주소값은 다름) ==연산자를 통해 동일한지의 여부를 알수있으며, equals를 통해 동등한지 여부를 확인 가능.. 허나 equals를 통해 모든 것을 다 동등한지 여부를 확인할 수는없다 Object메소드에서는 동일성확인을 하는 것이기떄문. 오버라이드를 해서 재정의를 해야함. [equals와 해쉬코드의 차이점, 왜 숫자일까] equals는 객체의 ..
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 메모리에 값이 ..