[LOATODO] 로스트아크 API 키 발급 및 사용법
·
Project/LOATODO
로아투두는 원할한 기능을 위해 사용자들에게 로스트아크 오픈 API키를 받고 있습니다.발급 방법을 모르시는 분들이 계셔 발급 방법을 남깁니다. 로스트아크 API 사이트https://developer-lostark.game.onstove.com/ Lostark OpenAPI Developer PortalOpen API For All Developers START BUILDING YOUR OWN CLIENTS TODAY USING OFFICIAL DATA. GET ACCESS TO LOSTARK APIdeveloper-lostark.game.onstove.com 로스트아크 API 발급 방법1. 위 링크로 들어가시거나 로스트아크 공식 홈페이지에서 하단으로 스크롤하여 오픈 API 버튼을 클릭하세요 2. 오픈 AP..
[LOATODO] 전략패턴(Strategy Pattern)을 이용한 코드 리팩토링
·
Project/LOATODO
1. 서론디자인 패턴 중 전략패턴에 대해 공부하였고 프로젝트에서 수정하면 좋은 부분이 생각나서 반영하였습니다. - 공부자료 1 : 전략 패턴 예제 작성 + 깃허브 커밋 (참고. JAVA 객체 지향 디자인 패턴 서적) Fetch: 전략패턴 · minhyeok2487/DesignPattern@1a60ca0minhyeok2487 committed Feb 26, 2024github.com - 공부자료 2 : 사이트 전략 패턴/ 디자인 패턴들 / 행동 패턴 전략 패턴 다음 이름으로도 불립니다: Strategy 의도 전략 패턴은 알고리즘들의 패밀리를 정의하고, 각 패밀리를 별도의 클래스에 넣은 후 그들의 객체들을 상호교환refactoring.guru  2. 리팩토링2 - 1. 리팩토링 부분현재 LoaTodo의 레이..
[LOATODO] 이메일 인증 Redis 서버 -> RDBMS로 변경
·
Project/LOATODO
1. Redis 사용 중지LoaTodo는 현재(2024년 2월 1일) 이메일로 가입하는 방식과 구글과 연동해서 가입하는 방식두가지를 지원하고 있습니다. 그 중 인증번호를 확인하는 로직에서 데이터를 저장하는 용도로 Redis를 사용하고 있고Redis 서버는 AWS ElastiCache에서 구축하고 있습니다.   [ 코드 일부 ]public int sendMail(String mail){ MimeMessage message = createMail(mail); javaMailSender.send(message); saveRedis(mail, number); return number;} public boolean checkMail(MailCheckDto mailCheckDto) { L..
[LOATODO] 이메일 인증 추가후 구글 로그인 error
·
Project/LOATODO
1. 서론현재 LoaTodo는 구글 로그인으로만 가입이 가능한 상태인데 추가로 일반적인 회원가입과 로그인도 추가하려고 한다.(사실 원래 있었다가 굳이 있어야하나 싶어서 뺐었다...) 간단한 로그인 / 회원가입 코드와 JWT 관련 로직은 있어서 추가로 이메일 인증 정도만 넣으면 되는데여기에 Redis를 추가해보려고 한다. 당장으로는 이메일 인증 유효시간에 쓰고 추후 코드 리팩토링할 때 서버 최적화를 위해 사용할 예정이다.  [Spring] Spring Boot Redis 사용하기 / 이메일 인증 유효시간Redis는 key-value 구조로 데이터를 저장하는 In-memory 기반의 데이터베이스 시스템입니다. Spring boot 에선 어떻게 구현하는지 알아봅시다. 1. 먼저 Redis란? 먼저 Redis가..
[LOATODO] 코드 리팩토링 SELECT 리팩토링
·
Project/LOATODO
1. 서론연관관계 테이블이 늘어나면서캐릭터 데이터를 호출할 때 SQL문이 여러번 실행된다. 1 - 1. 기존코드@Query(value = "SELECT c FROM Character c WHERE c.member = :member AND c.serverName = :serverName")List findCharacterListServerName(@Param("member") Member member, @Param("serverName") String serverName); JPA로 Member Entity를 불러와서 Controller에서 DTO로 변경할 때필요한 데이터들을 LAZY 형식으로 불러온다. 1 - 2. 기존코드 결과2023-11-24 17:32:29.777 DEBUG 39633 --- [ni..
[LOATODO] JPA 영속성 컨텍스트 더티체킹 VS JPQL로 벌크업데이트
·
Project/LOATODO
1. 서론프로젝트에서 JPA를 사용하여 CRUD 중 Update를 구현할 때,보통 변경감지(Dirty Checking)를 이용합니다.Entity를 조회하여 조회된 Entity 데이터를 변경만 하면 데이터 베이스에 자동으로 반영이 되도록 하는 기능입니다. 1 - 1. 영속성 컨텍스트JPA에서는 Entity Manager를 통해 데이터 베이스 작업을 처리합니다.Entity Manager는 내부적으로 영속성 컨텍스트라는 메모리 영역을 가지며 이 안에 데이터베이스로부터 조회한 Entity 객체들이 저장되어 있습니다. 1 - 2. 영속성 컨텍스트 변경감지(더티 체킹) JPA는 트랜잭션 되는 순간 내부적으로 flush()가 호출됩니다.그때 엔티티와 1차 캐시 내의 스냅샷(최초 상태)을 비교합니다.비교했을 때, 변경..
[LOATODO] 주간 숙제 완료 시 수치가 초과되는 에러
·
Project/LOATODO
1. 서론주간 숙제 완료(체크)시 수치가 초과되는 에러가 있다  오른쪽 상단 주간 수익 107.4%...2. 개발2 - 1. 백엔드 원인골드 획득 리스트랑 상관없이, 캐릭터에 저장된 컨텐츠가 수익으로 더해짐 character.getTodoV2List()를 반복문을 돌려서 todoResponseDtoList 만들고 난 후토탈 골드 획득 높은 순으로 3개를 정렬하여 4번째 부터는 0골드로 변경-> 여기서 characterDto.setWeekGold 할 때, todoResponseDtoList랑 상관없이 character.getTodoV2List()여기에 있는게 더해짐 2 - 2. 백엔드 수정 -> todoResponseDtoList 생성 후 character.getTodoV2List() 반복문 한번 더 돌림..
[LOATODO] 로아투투 퍼블리싱
·
Project/LOATODO
1. 서론프로젝트 기획단계에서프로트엔드 개발자나 퍼블리셔 구하는데 우여곡절이 많았지...원래 같이한다던 친구는 회사일이 바빠져서 못하고,그다음에 구한 사람은 하다가 자기는 이쪽이 아닌거 같다고하고...그다음도 잠수, 회사취업, 어려워서 못하겠어요...그뒤로 구하는거 포기했었는데얼마전에 감사하게도 로아투투 디자인을 도와주신다고 연락이 오셔서바로 세팅도와드리고 작업메인화면 바꾼지는 일주일 정도 된거 같은데 이제야 정리하네... 2. 변경2 - 1. 기존 UI 2 - 2. 변경된 UI  3. 정리 및 후기뭔가 더 화사해지고 깔끔한 느낌일일 수익 / 주간 수익 퍼센트로 나오는것도 예쁨!아직 모바일 화면 UI가 이상하긴한데...(특히 아이폰)본업도 있으시니 천천히 하는걸로!
[LOATODO] 휴식게이지 출력 디자인 수정
·
Project/LOATODO
1. 서론휴식 게이지 표시가 보기 불편해서 바꾸었다  2. 개발2 - 1. 기존 UI버튼안에 "숙제 체크(휴식게이지)" 모양글씨크키도 작아 가시성이 떨어지는거 같아 디자인 변경 2 - 2. 변경 UI 로스트아크내에 디자인 참고하여 반영2 - 3. 핵심 코드 handleDayContentGuage(e, character.id, "chaos")}> {Array.from({ length: 5 }, (_, index) => ( ))} 휴식게이지 : {character.chaosGauge}   3. 정리 및 후기 가시성이 더 좋아진거같다!