[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..
[팰월드/PALWORLD] 불 피우기 Lv4 마그니드라 알 구하기
·
개인/팰월드(PALWORLD)
게임을 하시다보면 덩치큰 팰도 늘어나서 요리도 해야하고 교배도 돌려야되서 케이크도 만들어야하는데 이 "케이크"가 작업량이 굉장히 많아서 오래 걸립니다 이때 도감 101B "마그니드라"가 단일 불 피우기 Lv4 로 아주 좋습니다!! 1. 도감 하지만 레벨도 높고 초반에 잡기에는 쌔고 멀리 있습니다 저도 잡아본적이 없으니까요 저희는 알을 훔치면 됩니다! 2. 알 위치 지도 7시방향 화산의 기슭부터 안쪽으로 한바퀴 빙 도시면 발견할 수 있습니다 근데 엄청 안나와요... 포스팅에 쓰일 사진 찍으려고 다시 돌아다녔는데 안보이네요 외국 포스팅으로 대체하겠습니다 3. 알 부화 4. 일해 계란 후라이같이 짧은거는 저 동그란 바가 1/5 정도되면 완성됩니다
[팰월드/PALWORLD] 팰 도감 / 작업 적성 정리 (미완)
·
개인/팰월드(PALWORLD)
아직 미완이지만 하나씩 정리해서 공유해보려고합니다 No.001 도로롱 수작업 Lv 1 운반 Lv 1 목장 Lv 1 No.002 까부냥 수작업 Lv 1 채집 Lv 1 채굴 Lv 1 운반 Lv 1 No.003 꼬꼬닭 채집 Lv 1 목장 Lv 1 No.004 큐룰리스 파종 Lv 1 수작업 Lv 1 채집 Lv 1 벌목 Lv 1 제약 Lv 1 No.005 파이호 불피우기 Lv 1 No.006 청부리 관개 Lv 1 수작업 Lv 1 운반 Lv 1 No.007 번개냥 발전 Lv 1 수작업 Lv 1 운반 Lv 1 No.008 몽지 파종 Lv 1 수작업 Lv 1 채집 Lv 1 벌목 Lv 1 운반 Lv 1 No.009 불꽃밤비 불피우기 Lv 1 No.010 펭키 관개 Lv 1 수작업 Lv 1 냉각 Lv 1 운반 Lv 1 N..
[Java] 스택(Stack)이랑 큐(Queue)가 뭔데? + 코딩테스트 문제
·
CodingTest/Algorithm
1. 스택(Stack) 1 - 1. 스택이란? "쌓다", 데이터를 차곡차곡 쌓아 올린 형태의 자료구조를 말합니다 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있습니다. 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 LIFO(Last In First Out) 구조 가장 최근에 스택에 삽입된 자료의 위치를 top이라고 합니다. 활용 예시 웹 브라우저 뒤로가기 실행 취소(Ctrl + z) 역순 문자열 만들기 후위 표기법 계산 수식의 괄호 검사(연산자 우선순위 표현을 위한 괄호 검사) 1 - 2. 자바에서의 스택 자바에서의 스택은 Stack 클래스를 구현하여 제공하고 있습니다. Stack st = new Stack(); Stack의 메서드 boolean empty() : Stack이 비어있는지 확인 ..
[Java] 오버로딩(OverLoading)??
·
Language/Java
1. 오버로딩(OverLoading)이란? 메서드는 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 합니다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있습니다. 이것을 오버로딩(OverLoading)이라고 합니다. 2. 오버로딩(OverLoading)의 조건 메서드 이름이 같아야 합니다. 매개변수의 개수 또는 타입이 달라야 합니다. 변환타입은 영향이 없습니다. 3. 예시 3 - 1. 대표적인 예시 "println" 가장 대표적인 예시로 println 메서드가 있습니다. println메서드를 호출할 때 매개변수로 지정하는 값의 타입에 따라서 호출..
[Spring / JPA] Server-Sent-Events(SSE)와 OSIV
·
Framework & Library/Spring
1. 서론 요즘 대부분 Spring Boot JPA를 많이 사용하고 추가로 SseEmiters로 실시간 알림기능 구현을 하려고 하면 대다수 IOException : Broken Pipe, Connection is not available, request timed out after 30004ms 이런 에러가 발생할 것입니다. 원인은 JPA의 영속성 컨텍스트, OSIV가 true로 설정되서 생기는 문제입니다. 이 글에서는 OSIV가 뭔지 정확히 왜 이런 에러가 생기는 건지 알아보고자 합니다. 2. 프록시 객체와 지연로딩 2 - 1. 프록시란? 프록시는 실제 클래스를 상속 받아서 만들어진 가짜 객체라고 할 수 있습니다. 이러한 프록시 객체는 실제 객채의 참조를 보관하는 특징을 가지고 있어 프록시 객체를 통해..
[CS / Server] 서버와의 데이터 통신 HTTP, AJAX 통신, WebSocket, SSE 각각 알아보자
·
Computer Science
현대 소프트웨어 개발에서 서버와의 효율적인 데이터 통신은 핵심적인 주제 중 하나입니다. 이에 따라 HTTP, AJAX, WebSocket, SSE와 같은 다양한 통신 프로토콜과 기술들이 등장했습니다. 이번 글에서는 각각의 특징과 활용 방법을 자세히 살펴보겠습니다. 웹과 애플리케이션 개발에 필수적인 이 기술들을 이해하고 활용함으로써 보다 효과적이고 동적인 데이터 통신을 구현할 수 있습니다. 1. HTTP HyperText Transfer Protocol HTTP에서는 클라이언트가 서버에 요청 메시지를 보내면 이에 대해 서버가 응답 메시지를 반환합니다. 서버는 응답 메시지를 반환한 후에 초기 상태로 돌아갑니다. 이 때 서버는 클라이언트의 상태를 저장하지 않습니다. 즉, HTTP 프로토콜은 상태가 없는 프로토..
[LOATODO] 이메일 인증 추가후 구글 로그인 error
·
Project/LOATODO
1. 서론현재 LoaTodo는 구글 로그인으로만 가입이 가능한 상태인데 추가로 일반적인 회원가입과 로그인도 추가하려고 한다.(사실 원래 있었다가 굳이 있어야하나 싶어서 뺐었다...) 간단한 로그인 / 회원가입 코드와 JWT 관련 로직은 있어서 추가로 이메일 인증 정도만 넣으면 되는데여기에 Redis를 추가해보려고 한다. 당장으로는 이메일 인증 유효시간에 쓰고 추후 코드 리팩토링할 때 서버 최적화를 위해 사용할 예정이다.  [Spring] Spring Boot Redis 사용하기 / 이메일 인증 유효시간Redis는 key-value 구조로 데이터를 저장하는 In-memory 기반의 데이터베이스 시스템입니다. Spring boot 에선 어떻게 구현하는지 알아봅시다. 1. 먼저 Redis란? 먼저 Redis가..