목록전체 글 (36)
코더
# 1. 작업 중인 내용 임시 커밋git add .git commit -m "wip: 작업 중"# 2. 다른 사람이 develop에 최신 코드를 올렸다면git switch developgit pull origin develop# 3. 다시 내 작업 브랜치로git switch feature/payment# 4. 최신 develop을 내 브랜치에 반영git fetch origingit merge origin/develop# 5. 이어서 작업 해결 방법 2git stashgit checkout developgit pull origin developgit checkout feature/paymentgit merge developgit stash pop을 하면 된다. 당연하게 내가 작업한 내용을 최신화한 deve..
배경 : 로그인에서 logintype = NAVER, 일 경우 네이버 보안 정책을 따르지만 logintype = LOCAL 인 경우, 해당하는 로그인에 보안 정책 설정을 추가하지 않았기에 구글 recaptcha를 적용하기로 했다. 결과 : 개선 점 :살제 프로젝트라면 return 값을 Void로 설정을 하는게 맞다 생각하는데 아직은 테스트 용이하게 하기위해 응답값에 유저에 대한 token 값을 내렸다.당연하게 실제 프로젝트라면 빈값을 return 하고 쿠키 정보만 내려줘야 한다.(인지는 하고 있어야 한다.)
배경 : 최종 프로젝트에서 한번 더 api 요청 흐름이나 정리가 필요하다 느껴 작성하게 되었다. 발생 오류 : // 해당하는 로그인 요청은 잘 받아왔는데 계속 다른곳으로 리다이렉팅 하며 url이 계속 바뀌는 버그가 일어났다.. 해결 :생각을 해보니 Oauth2.0 검증 완료된 코드 마지막에 / 로 리다이렉팅을 시켜준 후 아무 조치도 취하지 않았다. 아래 코드를 간단하게 추가하니 오류가 해결되었다.@RestControllerpublic class TestStaticController { @GetMapping("/") public String home() { return "로그인 성공"; }} 흐름도 정리 :[OAuth 2.0 인증]네이버 로그인 ↓Authorizati..
개요 : recaptcha 서비스를 브라우저에 간단하게 localhost:8080으로 호출을 하고 실제로 적용되나 테스트를 해보았다. 사용이유 : 사용자가 실제 사람인지, 아니면 악성 봇(매크로)인지 구분하여 보안을 강화하고 쾌적한 환경을 유지하기 위해 사용장: 강력한 봇 차단, 무작위 대입 공격, 스팸 생성, 티켓 매크로 등 악성 봇의 접근을 효과적으로 차단합니다단 : 사용자 경험(UX) 저하가 있고, V3 사용하는 현재는 괜찮지만 이미지 클릭을 하거나 ux가 저하 되고, 비용 문제가 발생 가능 설정 방법 : 1. Recaptcha 기본 설정 Recaptcha https://www.google.com/recaptcha/admin/create?utm_source=chatgpt.com 로그인 - Go..
개요 :jpa, mybatis를 사용하던 중에 문득 jpa는 객체 지향이여서 entity를 기준으로 바라보고 수정을 해주는데 mybatis는 직접 db를 수정하는 구조여서 @Query를 오랜만에 사용하고 내용도 정리를 할겸 글 작성하게 되었다. @Query 구조 설명 @Query(value = "SELECT * FROM users WHERE email = :email", nativeQuery = true)//이 방식보다는 아래방식을 많이 사용함 or @Query("SELECT u FROM USER u WHERE u.email = :email")user findUser(@Param("email") String email);// 이 방식이 직접 sql을 객체 통해 사용자가 조회하고 싶을 때 사용하는 로직..
배경 :분산락이 적용하는지 또한 예외처리가 동작하는지 확인하기 위해 Jmeter를 활용했고더 나아가 예전 팀프로젝트에서는 @pathvatiable + 한명의 유저가 여러번 요청을 하는 것과 달리jwt + secutiry + 모든 유저가 예약요청을 100번 반복하도록 하여 실제환경과 최대한 비슷하게 부하 테스트를 진행하였다. 과정 :쓰레드 그룹에서 HTTP요청 기본값에 email,password를 넣고헤더관리자에 content-Type : application을 적용JSON 추출기에 해당하는 accessToken을 받아오는 로직 설정헤더 관리자에 content-Type : application + Authorization : Bearer ${accessToken} 2개를 설정해준다. 분산락 + 예외처리 정..
배경 : 예약시에 알림설정 로직을 어플리케이션 내에서만 간단히 구현해보려고 했다. 문제점 :예약생성과 동시에 알림설정로직을 만들어 강결합이 될 뿐만 아니라,나중에 1분뒤 알림전송 같은 로직을 추가할 때 문제점이 많아 개선이 필요했다. // 위의 사진과 같이 알림 + 예약 생성을 동시에 하려고 하니 억지로 예약생성에 reservation Id 값도 추가를 해야하는 구조가 되었다. 발생한 문제점 :지금 굳이 1분뒤 알람이 필요한 로직이 아니며 다른 어플과 연동하지 않을예정이라 간단하게 성공여부만 rabbitmq에서 확인하도록 하였다. 그 과정에서,타입 불일치역직렬화 오류가 발생.// 지금 warm과 Error로직 살펴보면 변환로직에 실패했다는것을 확인 할 수있다. //변경 전 //변경 후 결과 :성공적으로 ..
배경 : 유저쿠폰 다운로드 문제점 과정 : 유저쿠폰 다운로드하는데 아래와 같은 오류가 발생함 확인을 해보니 unique제약조건을 걸지 않아서 발생한 문제였다.잘못 생각한 배경은 user와 coupon에 unique=true를 설정해줘서 문제가 없다고 착각을 한것이다.UserCoupon(중간엔티티)에는 제약조건이 걸려있지 않아 중복 다운로드가 될 위험을 없애기위해 코드를 추가했다. 또 다른 문제 발생:제약 조건을 걸어주니 생각한대로 작동을 하지 않았다. 생각을 해보니 사장이 유저쿠폰을 만들때는 유저에 똑같은 쿠폰을 반복해서 제공해도 되기 때문에 제약조건이 걸리면 안되는 사장유저쿠폰생성까지 걸려버리는 문제가 발생했다. 해결 :기존의 유니크 제약조건을 없애고 서비스단에서 기존에 Optional로 받던것을 L..