일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- junit
- Thymeleaf
- spring boot
- AssertJ
- 네이버클라우드
- mybatis
- Pinpoint
- NCP
- F-Lab
- ncloud
- 회고
- papago
- object storage
- docker
- spring
- OrientalUnity
- 네이버 클라우드
- ngrinder
- React
- Enum
- navercloud
- Java
- NaverCloudPlatform
- DBDocs
- Naver Cloud Platform
- 에프랩
- Naver Cloud
- Scheduler
- Database
- NooBLoL
- Today
- Total
목록프로젝트/NoobLoL (16)
DevJong12
해당 기록은 서버의 ScaleUp의 기록입니다. 여러편으로의 작성이 될 수도 있고, 1편으로 종료될 수도 있는 글입니다. 1. 기존에 사용하던 개발서버는 Micro서버로 프리티어 서버였으며, 싱글코어 CPU + 1G의 메모리 였다. 최초에 사양을 변경하게 된 것은, 어플리케이션(NooBLoL)을 실행하는데 까지는 문제가 없지만 이후에 핀포인트를 설치 후 실행을 해보면서 Scale Up이 필요하다 생각하게 되었다. 핀포인트를 실행할때 Agent, Collector, Web 세개를 실행시켜야 하는데 세개를 모두 같은 서버에 두려고 하다보니까 CPU와 메모리가 모두 부족한 상황이 생겨버렸다. Collector와 Agent를 분리는 할 수 있었지만, 분리를 한다는 것은 추가적인 금액을 소요한다는 것이기 때문에 ..
이전 포스트 [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을 셋..
프로젝트 서버작업 진행하다 생긴거니...일단 이곳에 적기로 한다... Naver Cloud Platform을 사용하면서 발생한 문제로, 파일을 전송하려고 FTP를 처음 연결을 해보려했다.. 항상 고정관념은 21, 22번포트를 사용하기에 , 해당 번호로 될줄알고 했으나 FTP는 연결이 되지를 않았고, 조금 긴시간 삽질을 파게되서 기록으로 남기고자 한다... 먼저 필자가 사용하는 FTP는 CyberDuck을 사용중이며, iterm을 통한 서버 접속을 주로 하는편이다. 또한 FTP를 사용할 때 21, 22번포트가 사용이 불가능해서 ACG에 추가적인 포트를 개방하고 사용하려했으나 그마저도 진행이 불가능했다. 아래의 사진처럼 진행을 했었다. 추가적으로 IP의 경우에는 서버정보에 있는 포트포워딩 IP를 통한 접속을..
포스트를 작성하게 된 계기(?) 기존에 사용하던 코드에 대해서 수정을 하고자 많은 소스들을 찾아 봤으나 예제가 없었다. 검색을 하는데 없다. 어..진짜없었다. 그래서, 기록이 필요해 보여 작성해보게 되었다. 기술스택 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..
이슈 내용 아래의 사진처럼 resources/static/docs/index.html에 문서가 실재 존재하나, 경로를 입력할 경우 No Handler Exception이 발생하는 문제를 해결하는 과정에 대한 기록. 실제 Index.html이 실재 존재하나, 링크처럼 입력을 하게 될 경우, 해당 Bad_Request되고 있었다. 오류로 나오는 스택역시 NoHandlerFoundException이 발생하고 있었다. 발생 원인 해당 문제의 발생원인은 내가 셋팅한 프로젝트 설정으로 인해 발생한 문제다. 이유는 아래의 생각떄문에 했던 설정이 문제다. ResponseBody에 대해서 내가 직접 제작을 했으니, 어떤 잘못된 요청이 들어와도 내가 직접 제작한 Response Body로 응답이 가야하지 않을까? 그렇게 ..
개요 프로젝트의 기능 구현 진행을 위해 Redis를 셋팅하면서 문제가 발생하였다. 정확히는 Test의 설정과 관련된 의존성 문제이며, 해결하는 과정을 기록한 포스트이다. 설정 및 테스트 코드 먼저 설정의 경우 아래의 포스트를 참고하였다. Redis(레디스) | Spring Boot 프로젝트 연동하기 [DB, NoSQL] - Windows 10 | 레디스(Redis) 설치 및 명령어 [DB, NoSQL] - Windows 10 | 레디스(Redis) 비밀번호 설정 📌 구성환경 SpringBoot 2.5.6, Redis 3.2.100 build.gradle implementation 'org.springfram.. kitty-geno.tistory.com 테스트 케이스의 경우에는 작동여부만 판단하기 위해 작..
내가 프로젝트를 제작하면서 int를 대신하여 Integer를 사용하는 경우가 많았다. 보통의 경우라면 숫자를 사용할 때 int를 사용하겠지만 Integer를 사용했던 이유는 int의 경우에는 Null에 대한 표현이 불가능하지만 Integer의 경우에는 Null을 담을 수 있기 때문에 애용을 했다. Integer를 사용하면서 int를 사용할 때는 없던 equals가 존재했고 equals와 ==의 차이점에 대해서 알게되어 추후라도 Integer를 사용할 때 주의를 하고자 한다. 문제의 내용 먼저 코드를 보여주면서 문제를 보고자한다. 1 2 3 4 5 6 7 8 9 10 Integer integerA = 1000; Integer integerB = 1000; int intA = 1000; int intB = ..
개요 프로젝트의 기능 구현을 하면서, 회원가입을 진행 할 때 메일을 발송해서 인증을 진행하는 기능을 제작하게 되었다. 문자열이 많지 않다 보니 메소드에서 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..
현재 해당 포스트를 작성하는 시점에서 nCloud의 서버를 구성하고 있는 사양은 아래의 사진과 같이 설정이 되어있었다. 이후 도커를 활용하여 CD를 구성후 실행을 할 경우 배포가 되는데 Hello World만찍은 시점에서 많은 시간이 소요된다고 느껴 멘토링에서 서버의 사양과 관련한 이슈를 얘기를 해보게 되었다. 도커를 사용하게 될 경우 현재 docker-compose를 통하여 모두 동시에 실행을 하도록 하고 있는 상황인데 도커가 실행되면서 자세한 자원사용 상황에 대한 모니터링을 진행하지를 않고 그저 Docker의 최소권장사양보다도 미달되는 사양이다 보니 무례하게 질문을 해버렸었다.. 이후 직접적인 모니터링을 통해 확인을 해보니 Docker를 실행하게 될 경우 자원의 소모량은 프로젝트 이미지와 DB의 이미..
회사에 다니면서 가장 해보고 싶었으나 못했던 부분에 대해서 작업을 해보고자 한다. CI / Continuos Integration : 지속적 통합 CD / Continuos Delivery : 지속적 배포 두가지 의미이며, 초창기에 CD의 구상은 젠킨스를 진행하려했으며 CI에 대한 개념이 부족했어서 설계를 진행하지 않았었다. 먼저 CI에 대한 작업을 진행하면서 굳이 CD작업에서 젠킨스밖에 몰랐던 부분에서, 굳이 젠킨스의 사용없이 구상이 가능하다고 생각이 들어 설계를 변경하고자 생각하게 되었다. 사용된 툴? 설계를 진행함에 선택한 도구는 Git Action을 사용해보기로 하였다. Youtube 알고리즘의 간택으로 영상들을 보다 보니 간편한 설계가 가능해 보이면서도 해당 설계를 작성하는 과정이 너무 재밌어 ..
DB의 경우에는 일단 Maria를 설치진행할 예정이며 도커로 하고자 한다. 1. 설치 명령어 image 가 없는 경우 mariadb를 가져온 이후 실행을 바로 할 수 있도록 설정하였다. 재실행시에 항상 켜지도록, 3306포트 포워딩, 백그라운드에서 실행하도록 하였다. docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=system mariadb 2. 컨테이너 접속 필자의 경우 mariadb그대로 컨테이너를 제작하였기에 mariadb컨테이너명으로 접속을 한다. docker exec -it mariadb /bin/bash 3. DB접속 mysql -u root -p DB접속 및 초기 패스워드설정한대로 접속. 아래와..
필자의 경우 개발서버에서 Maria와 시간적인 여유가 된다면 Redis까지를 전부 돌리는걸 목표로 하다 보니 간편하게 개발서버 구상을 하기위해서는 도커의 설치가 필수적이었다. 또한 프로젝트역시 도커를 통해서 실행할 예정이기에... 먼저 설치를 함에 있어서 아래의 도커의 tutorial을 참고하며 진행하였습니다. 설치과정은 해당 튜토리얼에서 제가 진행한 단계들에 대해서만 기록하였습니다. Orientation and setup docs.docker.com 1. 오래된 버전의 도커 Uninstall sudo apt-get remove docker docker-engine docker.io containerd runc 2. 레파지토리 설정 apt패키지의 업데이트를 진행한 이후 repository사용에 필요한 패..
개발 서버의 경우 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가 올라가게 될 서버는 서로 다른 서버를 사용하도록 ..
해당 프로젝트는 Spring-Boot를 이용한 프로젝트이며, 구현은 서버만 진행할 예정이며, 혼자서 프로젝트를 진행 합니다. 해당 문서는 현재 진행형이라 지속적으로 수정을 진행할 예정입니다. 프로젝트 Github 저장소 GitHub - f-lab-edu/NoobLoL Contribute to f-lab-edu/NoobLoL development by creating an account on GitHub. github.com 프로젝트 개요 'OP.GG'를 모티브로 만든 게임(리그오브레전드)의 전적검색에 대한 조회를 할 수 있는 Rest API입니다. 게임 캐릭터 명을 기반으로 게임에서 진행한 전적리스트와 해당 계정의 정보들, 의견을 나눌 수 있는 게시판 기능을 제공합니다. 사용 기술스택 Spring-Boo..