본문 바로가기

반응형

Backend

(183)
[gitHub] GitHub기본 CLI 기본적인 업로드 작업 Flow# 변경 내용 업로드 준비git add .# 변경 내용 적용 상태git status# 업로드에 대한 코멘트 작성git commit -m “comment”# 수정 및 업로드 상태 변화 확인git log# 업로드 경로 확인git remote --v# 업로드 시작git push origin main Git branch작업# 브랜치 생성과 동시에 이동git checkout -b [브랜치 이름]# 브랜치 이동git checkout [브랜치 이름]# 브랜치 생성git branch [브랜치 이름]# 하위 브랜치 생성git branch [브랜치 이름] [상위 브랜치 이름] error: failed to push some refs to ~repository경로~원인 : push시 원격 rep..
[Noti] 알림 전송 방식 4가지 ( SMS, Email, Kakao, Push ) 알림 전송시 사용할 공통 VO선언import org.apache.commons.lang3.builder.ToStringBuilder;import com.fasterxml.jackson.annotation.JsonAlias;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class HmsNotiVO { @JsonAlias({"noti_type", "notiType"}) private String notiType; //1.sms 2. email 3.kakao 4.push @JsonAlias("msg") private String msg; @JsonAlias({"mobile_number", "mobileNumber"}) private Strin..
[보안 취약점] PRG 패턴 (Post-Redirect-Get Pattern) 로그 아웃 후 캐시를 초기화 하지 않아 로그인 되었던 화면이 남아있는 이슈가 있었다.필터에서 캐시 초기화 진행뒤로가기 해도 정보가 넘어가게(양식 다시 제출 방지용)근데 session이나 cookie에 담는 것은 왜 안했을까? PRG 패턴 (Post-Redirect-Get Pattern)PRG패턴은 Post를 이용해 리소스에 대한 변경 요청이 있을때 해당 요청에 대해 재요청시 Post가 아닌 Get으로 Redirect되는 패턴이다. 웹 개발시 권장되는 디자인 패턴이다.이게 왜 중요하냐면 Post를 이용해 데이터를 전송하게 되는데 그 요청을 계속해서 재요청하게되면 동일한 데이터를 계속해서 전송하게 되기 때문이다.예를 들면 상품등록시 상품을 등록하는 요청에 대해 새로고침만 해도 해당 데이터가 전달되게 된다. ..
[CI/CD] Virtualization vs Containerization 가상화와 컨테이너화는 컴퓨터 시스템에서 Application을 호스팅하는 가장 보편적인 방법이다.AWS를 이용하는 방법은 Virtualization방식 이고, Docker를 이용하는 방법은 Containerization방식이다. 1. Virtualization가상화 방식의 가장 큰 특징은 단일 컴퓨터 리소스 혹은 서버에서 VM으로 리소스를 분할하고 각 VM에 필요한 OS를 다르게 설정할 수 있다는 점이다. 각 VM은 독립적으로 격리되어 있어 높은 보안성을 제공한다. 그러나, 이 보안을 유지하기 위해서는 각 VM 간의 접근에 대한 강화된 보안조치가 필요로 한다. VM은 각자의 운영 체제와 커널을 포함하기 때문에 리소스 소모가 더 크다. 2. Containerization컨테이너화 방식의 가장 큰 특징은 각..
[Maven] 수동 배포 작업 BuildIntelliJ우측의 Maven탭이 있다. 만약 보이지 않는다면 메뉴탭에서 불러올 수 있다.해당 창에서 package를 수행하면 war파일이 생성된다.STSPackage를 우클릭하여 Run As \ Maven install을 수행한다.빌드가 성공적으로 이루어지면 war파일이 생성된다.배포배포는 간단하다.was가 동작하는 경로에 war파일을 unzip을 하고 was를 재시작 해주면 된다.실무에서 주로 tomcat8.5를 사용했는데 이를 기준으로 예시를 작성해보면 다음 순서와 같다.이렇게 경로가 되어있는데 war파일이 존재하는 디렉토리에 war파일을 풀어주면 된다.SFTP가 가능하다면 보는것과 같이 업로드하여 편하게 풀어주면 된다.unzip {파일명}.war -d /home/{Path1}/www/{..
[Gradle] Could not resolve all files for configuration ':classpath'. 보통은 Spring Boot 버전과 JAVA버전이 맞지 않아 발생하는 경우가 많다고 한다.만약 이런 에러를 만난다면 다음을 체크해 보는것이 좋다. 1. File\ProjectStructure의 SDK가 정상적으로 되어있나?2. File\settings\Build~\BuildTools의 Build도구에서 Build도구 JVM이 정상적인 버전으로 되어있는가? 나의 경우에는 SDK를 JAVA 17로 해놓았음에도 JAVA11로 빌드를 하려고하여 Gradle버전이 맞지 않아 에러가 발생했던 것이다.
[Oauth2] Implicit Grant vs Authorization Code Grant Oauth2를 연동할때 Implicit 방식과 Authorization Code방식이 있다.그 두 방식에 대해 알아보려고 한다. Implicit 방식개요주로 클라이언트 측 애플리케이션(예: 자바스크립트 앱)에서 사용인증 과정이 간단하고, 액세스 토큰을 직접 받음액세스 토큰이 URL 해시 프래그먼트에 포함되어 클라이언트에 전달동작 과정사용자가 클라이언트 애플리케이션에 로그인 요청클라이언트 애플리케이션은 사용자에게 권한 부여 서버(Authorization Server)로 리디렉션사용자는 권한 부여 서버에서 로그인하고, 요청된 권한을 승인권한 부여 서버는 액세스 토큰을 URL 해시 프래그먼트로 클라이언트 애플리케이션에 전달클라이언트 애플리케이션은 액세스 토큰을 추출하여 API 서버에 요청을 보낼 때 사용장점인..
[OAuth2] 회고4 Q1. Provider에서 parsing이 정상적으로 이루어 지지 않은것 같다.ResponseDto를 만들어주어 우회해서 parsing시켜주었다.➡️ accessToken을 정상적으로 가져온다. Q2. Oauth2를 팝업에서 진행하고 완료시 팝업창 닫고 메인창을 reidrect시키려고 한다.➡️Contoller에서 Redirect에 이용할 중간 페이지를 호출하게 한다.... @RequestMapping(value = "/oauthRedirect") public String oauth2LoginProcess() { String returnPage = "web/common/oauthRedirect"; return returnPage; }... 중간 페이지에서 parameter를 이용해 red..

반응형