팀프로젝트 58

Maven 프로젝트를 Gradle로 전환하기

nGrinder를 사용하기 위해 프로젝트를 Gradle로 바꾸어야 한다.언젠가 Gradle을 써볼 생각이었으니 일단 시작Intellij로 진행했기 때문에 Eclipse에서는 어떻게 되는지 잘 모릅니다...이하는 일단 Gradle과 Maven의 차이다.더보기1. 유연성# Gradle과 Maven 모두 설정파일 작성을 통해 규칙을 정합니다. 메이븐이 굉장히 엄격한 모델을 제공함으로서 커스터마이징이 굉장히 지루하고 때로는 불가능한 것 과는 대조적으로 Gradle은 책임감있고 권한있는 사용자를 전제로 빌드되어 훨씬 유연합니다. 2. 속도# 빌드 타임을 줄이는건 생산성을 향상시키는 가장 직관적인 방법 중 하나 입니다. Gradle과 Maven 모두 병렬 처리를 지원하지만 가장 큰 차이는 Gradle의 작업 회피 ..

nGrider 사용

https://github.com/naver/ngrinder/releases  Releases · naver/ngrinderenterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.github.com https://notspoon.tistory.com/48 nGrinder 성능테스트 사용법 및 테스트 예제1. nGrinder nGrinder는 네이버에서 제공하는 서버 부하 테스트 오픈 소스 프로젝트이다. 애플리케이션을 개발하고 nGrinder에서 여러가지 가상 시나리오를 만들어 트래픽에 몰렸을 때 성능을 측정할notspoon.tistory.comh..

스프링부트 팀플) 20240414 JWT 적용(Oauth2 포함)

JWT란? ( JSON Web Token) - Map의 데이터타입처럼 Key-Value 구조를 가지고 있으며 Web Token으로 사용할 수 있다. 왜 토큰을 쓸까? --> 이걸 이해하기 위해서는 쿠키와 세션에 대해 알아야 한다. 그러면 쿠키와 세션을 왜 쓸까? - HTTP 통신은 Request와 Response가 끝나면 stateless이기 때문에 연결을 끊는다. (쉽게 말해 요청-> 종료 과정이 종료되면 그 상태가 더이상 유지되지 않는다) --> 이런 특징으로 인해 로그인 상태 유지에 문제가 발생한다. ---> 누가 로그인 중인지 기억하기 위해 쿠키/세션/토큰을 사용한다. 쿠키란? - 공개 가능한 정보를 사용자의 브라우저에 저장시켜, 사용자의 사용 경험을 향상시켜준다. - 서버는 클라이언트 측에 저장..

스프링부트 팀플) 20240412 구글 로그인 수정 및 소셜로그인 여부에 따른 과정 로그인/회원가입 변경

우선 구글 로그인 문제는 생각 이상으로 싱거운 이유였다... secret_code 맨 마지막 글자 하나가 빠져 있었던 것... 왜 그런데 처음에는 uri 에러라고 뜨다가 토큰 만료 에러가 출력되었던걸까? 아무튼 허무하게 해결되었다. 소셜 네트워크 가입자에 따른 jsp 출력 변경 이유는 다음과 같다. 1. 소셜네트워크에 가입한 다음, 회원가입/아이디찾기/비밀번호 찾기를 하는 사람은 왜 발생할까? --> 대부분은 본인이 소셜네트워크로 가입한 것을 까먹었기 때문일 것이다. --> 그걸 알려주면 관련 기능을 쓰지 않을 확률이 높다 (굳이 따지자면 아이디+비밀번호로도 로그인하고 싶은 사람은 회원가입을 원할 것이다) --> 로그인/회원가입 관련 다양한 기능을 사용하는 대신, 소셜네트워크 로그인 버튼만 누르고 관련 ..

스프링부트 팀플) 20240411 스프링시큐리티+소셜로그인(네이버/카카오

기존의 소셜로그인에서 스프링시큐리티를 더하는 시스템을 구현했다. 생각보다 너무 복잡하고 어렵더라... 심지어 아직 구글은 구현이 안 된다...이유는 몰루 Redirect_Uri가 다르다고 뜨다가 결국 token이 만료되었다고 뜨기에 이르렀다. 아직 시스템도 손볼 것이 많지만 일단은 포스팅 org.springframework.security spring-security-oauth2-client 5.7.7 우선 pom.xml을 수정해서 oauth2 의존성을 추가한다. #Registeration #Naver Login spring.security.oauth2.client.registration.naver.client-name=naver spring.security.oauth2.client.registratio..

스프링부트 팀플) 20240410 스프링시큐리티를 통한 로그인

Spring Security란? Spring Security는 인증, 권한 관리 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는데 도움을 주는 Spring의 강력한 프레임워크이다. 일반적으로 개발 시 가장 먼저 작업하는 부분이 사용자 관리 부분으로 가볍게는 회원가입부터 로그인, 로그아웃, 세션 관리, 권한 관리까지 온라인 플랫폼에 맞춰 다양하게 작업되는 인가 & 보안 기능은 개발자에게 많은 시간을 요구한다. Spring 생태계 내에서 이러한 요구사항을 효과적으로 지원하기 위해 개발된 것이 Spring Security로 개발자들이 보안 관련 기능을 효율적이고 신속하게 구현할 수 있도록 도와준다. 그런데 나는 이걸 회원가입부터 다 구현하고 난 다음에 맨 마지막에 이..

스프링부트 팀플) 20240405 익명게시판 댓글/대댓

올린 줄 알고 있었는데, 멍청하게 임시저장만 해놓고 올리질 않았다... 아무튼 이번에 구현한 기능을 크게 6가지 1. 댓글 출력 2. 댓글 등록 3. 댓글 삭제 4. 대댓글(답글) 출력 5. 답글 등록 6. 답글 삭제 이때 발생하는 문제는 다음과 같다. 1. 처음에 댓글을 어떻게 출력을 할 것인가? 2. 댓글 등록/삭제 후에 어떻게 출력을 할 것인가? 3. 답글을 댓글에 맞춰서 어떻게 출력을 할 것인가? 4. 어떻게 댓글에 맞춰서 답글을 등록/삭제할 것인가? 우선 전체적으로 AJAX처리를 통해 출력/등록/삭제를 진행했다. 한 마디로 게시글에 입장한 뒤에 댓글/답글과 관련된 모든 행동을 브라우저의 URL이 전혀 이동하지 않는다. 이를 통해 유저는 페이지가 전환되어 계속 스크롤을 내리는 등의 불편함을 가질 ..

스프링부트 팀플) 20240403 properties분리 / 회원가입 로딩창 구현

몇 일동안 application.properties의 민감한 정보를 다른 곳에 옮기려고 애를 썼는데 굉장히 쉽게 끝났다.. 별거 없어도 알아서 잘 돌아가더라... 이후, 새로운 properties파일에 옮기고 싶은 정보를 입력한다. 기존 application.properties파일 내의 정보를 그대로 복붙하면 된다. 그 다음 application.properties에 profiles 설정을 한다. 그러면 application.properties에 자료가 없어도 알아서 잘 읽어온다. 원래는 profile를 나누기 위해 사용하는 장치지만 쓰는 사람 마음대로지. 추가로 새롭게 만든 application-dev.properties파일을 gitIgnore 처리를 한다. 본래 profile을 사용하고자 한 이유는 ..

스프링부트 팀플) 20240401 외부API가입자 안내 / 비밀번호 바꾸기 메일

오늘 한 작업은 크게 3가지 1. userId를 username으로, userPw를 password로 바꾸기 조만간 Spring Security를 적용할 예정인데, 그때 아이디를 username, 비밀번호를 password로 바꾸어야 한다는 것을 알게 되었다. 어차피 나중에 DB바꿀 거라면 지금 바꾸는 편이 나을 것이라는 생각에 바꾸게 되었다. 현재 userId를 Primary Key로 쓰고 있는데, Sequence로 바꿀지도 고민중이다. 다만, 그럴 경우 일이 너무 커질 것 같아서... 아무튼 일단 username, password로 수정 2. 외부API가입자 안내 현재 외부API가입자는 관리의 편의성을 위해 회원가입 처리를 하게 된 상태이다. 그래서 외부API로 가입을 한 사람은 내부API로 가입할 ..