일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준#BOJ#8012#한동이는영업사원
- 백준#boj#12755
- 백준#boj#16932#모양만들기
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#1939#중량제한
- 백준#BOJ#12865#평범한배낭
- 백준#BOJ#2615#오목
- Today
- Total
목록나의 개발 메모장 (36)
순간을 성실히, 화려함보단 꾸준함을
안녕하세요 벌써 글또 프로그램이 마지막을 향해서 달려가고 있습니다. 앞으로 총 4번의 활동만 남았는데요 ㅎㅎ 항상 처음보단 마지막이 중요하다고 생각하기 때문에 끝까지 완주를 하기 위해 노력하려고 합니다. 글또 9번째 글인 오늘의 주제는 spring boot 와 redis 를 연동했던 과정을 적어보려고 합니다. 배경 현재 토이 프로젝트를 진행하는데 있어서 jwt 를 사용하여 로그인 기능을 구현하고 있습니다. accessToken 으로 인증 절차를 처리하고 있고 accessToken 이 만료되었을때 이를 갱신시켜줄 수단으로 refreshToken 을 사용하고 있습니다. 이때 refreshToken 을 사용하여 accessToken 을 갱신시켜주려고 할때 서버쪽에서도 어딘가에 refreshToken 을 가지고..
안녕하세요! 벌써 글또 8번째 글을 작성해야 하는 기한이 다가왔습니다. 오늘은 토이 프로젝트를 진행하다 마주했던 상황을 풀어 써보려고 합니다. 배경 로그인을 성공한 뒤에 인증된 사용자인지 아닌지를 구별하기 위해서 spring interceptor 에서 체크하는 로직을 생성하였습니다. 이때, 동일한 URI 에 대해서 http method 에 따라 다르게 로직을 수행해야 하는 상황을 맞이하였습니다. 예를 들면, Get : /api/member/{id}/me(회원정보 조회) Patch : /api/member/{id}/me(회원정보 수정) 위와 같이 http method 가 정의된 API가 존재하고 있을때, 회원정보를 조회하는 API는 누구나 접근가능하지만 회원정보를 수정하는 API는 반드시 본인만 수행해야 ..
안녕하세요 오늘은 글또 7번째 글을 작성해보려고 합니다. 주제는 '어느 날 이넘(enum) 이 내게 찾아왔다!' 즉, enum 활용하여 고객의 요구사항을 구현했던 경험을 작성해보려고 합니다. 배경 어떠한 신청서를 신청하게 되면 승인/반려 처리를 하는 프로세스가 존재합니다. 이때 '반려' 처리를 하게 되면 각 신청서에 대해 반려 사유를 신청자에게 알람톡이 가게끔 기능을 개발해달라는 요구사항이 들어왔습니다. 신청서는 학자금, 리조트, 의료비 등등 다양한 유형들의 신청서들이 존재하고 있습니다. 모든 신청서관련 클래스는 공통의 추상 클래스 를 상속받고 있는 상황이었습니다. 단순히 생각했을때는 상속받고 있는 신청서 클래스마다 반려처리시 알람톡이 발송되게끔 코드를 작성하면 될 듯 싶습니다. 그러나 신청서의 유형은 ..
안녕하세요!! 글또 6번째 글을 써보도록 합시다아아아!!!!!!!!!!!!!!!!!!!!!!!! 오늘의 글의 주제는!!!! application.yml 파일에서 profile 을 적용하여 배포환경을 구분지어 주는 방법을 포스팅해보려고 합니다. 물론 우리가 실무에서는 보통 개발서버와 운영서버가 구분되어 있고 당연히 개발서버에서는 개발DB, 운영서버에는 운영DB 정보가 활성화되어야겠죠? 그러나 한 서버에 port 로 구분하여 같은 서비스를 개발,운영 환경으로 구별해야 할때는 어떻게 해야될까요? 지금까지 저는 매번 개발, 운영 config 파일을 각각 주석처리하면서 사용해 왔습니다. 그러나 너무 귀찮고 개발에 배포해야되는데 운영config 파일을 활성화 시키는 실수를 유발하더라구요. 그래서 방법이 분명히 있을..
안녕하세요!!! 원래는,,,,글또 6번째 글이어야 하지만 ㅠㅠㅠ 한번을 스킵했습니다. 이번에는 기한에 쪼달리지 않게 미리미리 글을 조금씩 쓰기 위해서 미리 글을 작성해보려고 합니다! 5번째 글입니다!!!! 이번 글의 주제는 사이드 프로젝트는 아닌 회사일을 하면서 마주했던 문제에 대해 해결(?!) 했던 방법을 적어보려고 합니다. 바로 HttpClient class 를 사용하여 Rest 웹 서비스를 구현한 경험입니다. 웹서비스가 무엇인지 간단하게 설명하자면 HTTP/HTTPS 프로토콜을 사용하여 데이터만을 주고받을 수 있도록 설계된 모듈을 말합니다. 즉, 현재 내가 관리하고 있는 시스템에서 외부 API 를 호출하기 위한 작업이라고 생각하시면 될 것 같습니다. 여러 글들을 찾아보니 크게 4가지의 방법이 존재한..
안녕하세요!!! 벌써 글또 4번째 글을 작성하게 되었네요 ㅎㅎ 이번에 작성할 내용은 특별한 내용은 아니고 삽질을 한 경험을 바탕으로 새롭게 얻은 지식을 정리하는 글을 작성하려고 합니다. 바로 @Value 어노테이션을 사용하여 property 값을 주입받는 과정에서 생긴 일입니다. 먼저 @Value 어노테이션은 언제 사용할까요???? Typically used for expression-driven or property-driven dependency injection. 식 또는 속성기반 표현식의 주입성을 받기 위해 사용됩니다. 즉, 스프링 빈들에 정의되어있는 필드에 값을 주입하기 위해서 사용되는 어노테이션 입니다. public class Test{ @Value("${user.name}") private ..
안녕하세요. 폭발토끼입니다. 오늘은 글또 3번째 글을 작성하는 날입니다!! 오늘 다뤄볼 주제는 spring 을 사용하고 있으시면 test code 를 작성할때 한번쯤은 마주해봤을 내용을 가져왔습니다. 바로 auto_increment 에 관한 내용입니다. 테스트 코드를 작성하는 법에 대해서 공부하던 중에 테스트 하나만 진행했을때는 문제없이 성공했지만 두개 이상의 테스트를 진행했을 경우에 이상하게 자꾸 에러가 발생하는 문제가 생겼었습니다. Member Entity 입니다. 기본키 전략을 IDENTITY 로 설정해주었습니다. 간단한 회원가입 Controller 를 테스트 하는 코드입니다. Member 테이블에 save 하면 기본키가 1씩 증가하게 되겠죠? 회원정보 수정 Controller 를 테스트 하는 코드..
안녕하세요. 폭발토끼입니다. 오늘은 제가 사이드 프로젝트를 진행하면서 겪었던 까다로움(?)을 어떻게 코드를 작성하였는지 더불어 어떤 점을 공부하였는지 여러분들께 공유를 하고 싶어 글을 적기 시작했습니다. 아마 이 글이 글또 2번째 글이 되기도 하겠네요 ㅎㅎ 먼저 fetch API 란 무엇일까요??? 많은 분들이 jsp 를 사용하신 경험이 있으셨으면 ajax 라는 비동기 http 통신 기술을 사용해본적이 있으셨을 겁니다. 그러나 javascript 도 점점 발전하게 되었고 너무 오래된 기술이 되어버린 ajax는 가독성도 좋지 못하고 태그들이 추가되면 파일 사이즈가 커진다는 단점 때문데 최근에는 프로미스 기반의 fetch API 혹은 axios 를 많이 사용하는 추세입니다. (https://developer..
안녕하세요 오랜만에 찾아왔습니다. 현재 인프런 호돌맨님의 '요절복통 개발쇼' 강의를 보면서 개인적으로 공부하면서 코딩하고 있는데 마주쳤던 에러를 하나 소개해드릴려고 합니다. JPA metamodel must not be empty! 입니다. 우리가 JPA 를 사용하여 프로젝트를 진행할때 도메인(엔티티) 를 생성할시에 '생성시간','수정시간' 을 필드로 정의하게 됩니다. 이때, 모든 도메인(엔티티)에 적용해야 하므로 @MappedSuperclass를 사용해서 공통 클래스를 정의해주죠? @Getter @Setter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract clas..
안녕하세요. 테스트 코드를 작성 중에 전에 만나지 못했던 에러를 만났었습니다. java.lang.IllegalStateException: Failed to load ApplicationContext 인데요 전 MemberController 를 테스트 하고 싶은데 자꾸 No qualifying bean of type 'xxxx.xxxxx.article.ArticleService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 이런 메세지가 뜨는겁니다. 대체 뭐지? 싶었습니다. 테스트를 시도하지 않았던 ArticleController 에 관한 내용이 에러메세지..
안녕하세요. 참 기분이 이상합니다. 이 블로그를 운영하면서 처음으로 회고록을 써보네요. 사실 별거 없는 블로그를 운영하고 있고 대단한 회사를 다니는 사람도 아니어서 너까짓께 회고록?! 풉 ㅋㅋ 이런 반응이 나올 것 같아서 한번도 안써봤는데 그래두.... 제 시간을 되돌아보는 시간을 갖기에 회고록만한 기록이 없는 것 같습니다. 1. 취업과 관계 2022년 취업을 했습니다. 회사는 대기업IT계열사 입니다. 현재 수많은 sm팀 중 한곳에 속해 있으며 한 시스템을 맡아 유지보수 하는 일을 하고 있습니다. 사실 이 회사에 중고신입으로 입사를 했습니다. 그 전에 다니던 회사는 중견 si 업체였는데 집이랑 굉장히 멀기도 했고 제 기준에 원하는 기업으로 도약하기에는 부족하다고 생각이 되었고 입사를 하자마자 이직준비를 ..
안녕하세요. 오랜만에 찾아왔습니다. 자바와 스프링을 많이 다루고 싶지만....현재 다니고 있는 회사에서는 현실적으로 그러지 못해서 반강제적(?)으로 쿼리를 엄청 다루게 되었는데요. 사실 취업하기 전까지만 해도 쿼리란 기본적인 DDL(CREATE,DROP,ALTER) 와 DML(SELECT, UPDATE, DELETE, INSERT) 밖에 몰랐던 상태였습니다. 일하다보니 자바보단 쿼리를 훨씬 많이 다루고 눈코딩을 해야하는 상황이 많아서 기왕 이렇게 된거 PL/SQL 도 공부할겸 배우고 느낀점들을 적어보려고 합니다. 가장 힘들었던 부분이 '디버깅' 입니다.(현재 회사에서 오라클을 사용하고 있어서 양해부탁드립니다) 이클립스와 인텔리제이 같은 굉장히 좋은 IDE를 스프링과 자바를 사용함으로써 정말..