분류 전체보기 85

[ERROR] javax.servlet.ServletRequest.getRemoteAddr() is not supported

[이슈 당시 상황] Back단 java application, Front단 react, nextjs를 사용해서 프로젝트를 진행 AWS EC2 인스턴스로 배포 하고, Route 53으로 DNS 연결을 하고 ACM 으로 SSL 연결 해당 EC2를 443 포트로 로드밸런싱을 처리 [이슈 내용] 특정 IP만 접속 가능하도록 설정 해두었는데, 해당 IP으로 접근이 되지 않고 javax.servlet.ServletRequest.getRemoteAddr() is not supported 에러가 발생. [해결 방안] 일반적으로 Spring Security의 인증 과정에서 HttpServletRequest를 사용하여 클라이언트의 IP 주소를 가져올 수 있습니다. 그러나 특정 환경에서는 getRemoteAddr() 메서드..

Java/Spring 2023.06.28

[CentOS 7] Nginx 설치

yum 유틸리티 설치 yum으로 NginX를 설치하기 전에 yum-utils를 먼저 설치 yum install yum-utils NginX package를 다운 받아 설치하기 위해서는 Repository를 설정 Repository 디렉토리 (/etc/yum.repos.d/)에 nginx.repo 파일을 만들고 아래와 같은 내용을 입력 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] n..

Linux 2022.10.26

@Transactional 적용 안된 현상 정리

한 serviceImpl 안에서 insert로직이 2번 이루어 질때 하나의 로직이 실패 할시에 Transaction으로 rollback을 할 계획 이었다. 하지만 전에 진행하던 프로젝트와 똑같은 방법으로 진행하였지만 rollback이 안되고 exception이 일어나기 전까지의 로직이 수행되어서 DB에 저장되었는데 그 과정을 처리했던 방법 정리 구글링을 통해서 1. Checked Exception일 경우 2. 한 클래스 내 @Transaction이 설정되어있지 않은 메소드에서 @Transaction이 설정된 메소드를 호출할 경우 3. 메소드가 private일 경우 4. @Transactional을 선언한 함수 내부에 try-catch구문 크게 4가지를 찾아보고 대입해 보았지만 해당 문제와 무관하였다. 해..

Java/Spring 2022.04.09

Controller parameter 받는 방법

Controller은 비지니스 로직을 처리하고 데이터를 가공 하는 역할을 하는데, 이때 비지니스 로직을 처리하기위해 controller에서 데이터를 받는 방법 HttpServletRequest @RequestParam @RequestBody @ModelAtrribute @PathVariable localhost:8082/test?id=test localhost:8082/test?searchType=all&keyword=er 1. HttpServletRequest.getParameter() - 클라이언트의 요청정보를 확인하게해주는 HttpServletRequest를 이용하기 @GetMapping("/test"); public void getInfo(HttpServletRequest request){ log..

Java/Spring 2022.04.09

profile, bashrc 설정 파일

/etc/profile ~/.bash_profile /etc/bashrc ~/.bashrc 모두 장치 관리 및 사용자 환경을 위한 설정 파일 실행되는 순서 및 언제 로드 되느냐가 다름. 먼저 Login Shell과 Non-Login Shell을 알아야 함. login shell 처음 리눅스를 부팅하고 터미널을 켰을 경우 특정 shell로 계정, 암호를 입력하여 실행하는 경우 ssh로 접속하는 경우 로컬에서 GUI를 통한 shell 실행하는 경우 su 명령어로 다른 계정에 접속하는 경우 non-login shell 로그인 없이 Shell을 실행하는 경우 터미널을 켰을 때 특정 shell로 들어가지 않고 직접 sh 등의 명령어로 특정 shell에 접속하는 경우 ssh로 접속하고 나서 다시 bash를 실행 하..

Linux 2022.03.17

깃허브로 협업하기, 깃허브에서 개발자와 소통하기

[ 5일 완성 코스 4일차, 5일차] 05장 깃허브로 협업하기05-1 여러 컴퓨터에서 깃허브 저장소 함께 사용하기 원격 저장소 복제하기 - git clonegit clone 원격 저장소에서 지역 저장소로 가져오는것을 복제한다, 클론, 클로닝 이라고 함$ git clone 복사한 주소 붙여넣기 git_home $ git clone https://github.com/ohjihoon2/test-git.git git_home$ git clone https://github.com/ohjihoon2/test-git.git git_officegit_home 은 local repository git_office 는 회사 컴퓨터 repository 라고 생각 $ git remote -vclone을 하게 되면 자동으로 ..

Git 2022.01.04

깃허브로 백업하기

[ 5일 완성 코스 3일차 ] 04장 깃허브로 백업하기 04-1 원격 저장소와 깃허브 원격저장소 깃에는 로컬 저장소와 원격 저장소를 연결하여 버전 관리하는 파일들을 쉽게 백업할 수 있음 원격 저장소는 로컬이 아닌 컴퓨터나 서버에 만들어진 저장소를 말함 현재까지는 로컬 컴퓨터에 작업을 하고 로컬 저장소에 커밋하여 저장하였음 04-2 깃허브 시작하기 04-3 지역 저장소를 원격 저장소에 연결하기 지역 저장소 만들기 $ git init loc-git $ cd loc-git $ vim f1.txt // f1.txt a 넣고 저장 $ git add f1.txt $ git commit -m "add a" 원격 저장소에 연결하기 $ git remote add origin $ git remote add origin 뒤..

Git 2021.12.30

깃과 브랜치

[ 5일 완성 코스 2일차 ] 03장 깃과 브랜치 03-1 브랜치란? 버전 관리 시스템에서는 줄기를 뻗듯이 여러 갈래로 펴져 가는 데이터 흐름을 말함 브랜치 기능 1. 분기 2. 병합 03-2 브랜치 만들기 $ git branch branch 들의 정보를 확인 할 때 사용 $ git branch apple 현재 저장소에 있는 데이터 들을 그대로 가지고 다른 갈래의 branch가 생성 됨 HEAD branch인 master를 branch 해서 apple branch를 생성 브랜치 사이 이동하기 $ git switch // 예전 버전에서는 git checkout 을 사용 $ git switch apple HEAD branch인 master 에서 apple branch로 이동 커밋 간단하게 확인하는 옵션 $ ..

Git 2021.12.29

Git 시작하기, 깃으로 버전 관리하기

[ 5일 완성 코스 1일차 ] 1장 - 깃 시작하기 01-1 지옥에서 온 관리자, 깃 깃으로 무엇을 할 수 있을까? 1. 버전관리 2. 백업하기 3. 협업하기 01-2 깃 설치하기 깃 환경 설정하기 사용자 정보를 git config 명령어로 설정 $ git config --global user.name "username" $ git config --global user.email "id@gmail.com" --global 옵션 현재 컴퓨터에 있는 모든 저장소에서 같은 사용자 정보를 사용하도록 설정 01-3 리눅스 명령 연습하기 02장 깃으로 버전 관리하기 02-1 깃 저장소 만들기 깃 초기화하기 - git init $ mkdr hello-git $ cd hello-git $ git init hello-g..

Git 2021.12.28