기타 기술 10

현제 웹페이지와 이전 웹페이지의 URL 가져오기(JAVA)

현재 웹 페이지의 URL 가져오기 getRequestURL 메서드 이용 public class findURL { // 현재 웹페이지의 URL 불러오기 public void find(HttpServletRequest request) { String url = request.getRequestURL().toString(); System.out.println("url = " + url); } } 프로토콜(protocol) HttpServletRequest 객체의 "referer" 헤더값 불러오기 public class findURL { // 이전 웹페이지의 URL 불러오기 public void find(HttpServletRequest request) { String url = request.getHeader..

기타 기술 2023.08.02

SpringBoot profile 설정하기

profile 개발을 할 때, 서버에 관한 설정, 로컬에서 개발할 때 사용하는 설정, 실제 서비스를 운영할 때 필요한 설정 등 다양한 설정이 필요하다. 설정이 달라질 때마다 설정을 변경하는 것을 번거롭고 실수를 할 수 있기 때문에 다양한 profile을 생성해서 필요한 상황에 따라서 사용하는 것이 좋다. 인텔리제이에서 profile 변경 인텔리제이에서 설정을 통해서 원하는 profile을 코드 실행 때 실행 가능 프로젝트 내에 생성한 yml 파일 application.yml과 application-local.yml 생성 지금은 application-local.yml을 이용해서 코드 실행할 예정 실행버튼 옆에 현재 실행중인 java 파일이 보임 → [Edit Configurations ..] 클릭 [Spr..

기타 기술 2023.06.11

쉘스크립트를 이용한 현재 시간으로 파일 생성하기

log 파일 쉘스크립트를 통해서 현재 시간으로 파일 생성하기 name=`date`_log.out name 변수 생성 `date` 명령어를 통해서 현재 시간 가져오기 원하는 파일 확장자 붙여주기(ex. _log.out, .txt 등등) name=`echo $name | sed 's/\ /_/g'` date 명령어의 결과는 아래와 같이 공백을 통해서 날짜를 확인할 수 있음 Wed Jun 7 11:54:13 KST 2023 이 공백을 언더바(_)로 대체해서 이름 변경하기 touch ${name} 만들고자 하는 파일명으로 파일 생성하기 #!/bin/bash # make log file by created date name=`date`_log.out name=`echo $name | sed 's/\ /_/g'` ..

기타 기술 2023.06.07

spring 백그라운드 실행 시 로그 남기기

nohup nohup 명령어 사용하기 nohub은 백그라운드에서 동작을 수행하기 위해서 사용하는 명령어 백그라운드에서 서버 실행 nohub java -jar 프로젝트명-0.0.1-SNAPSHOT.jar & 로그 파일 확인 로그 파일인 nohup.out 파일 생성됨 생성된 로그 확인하기 cat nohup.out 주의할 점 nohup.out 에 로그가 추가로 작성되기 때문에, 이전에 작성된 내용에 추가로 생성됨 다른 파일에 로그를 남기고 싶은 경우 nohub java -jar 프로젝트명-0.0.1-SNAPSHOT.jar >> 파일명.out & 출처 https://bcp0109.tistory.com/353

기타 기술 2023.06.07

.gitignore 폴더에서 특정 파일만 추가하기

.gitignore 예를 들어서 build 폴더 중 libs 파일만 깃허브에 commit하고 싶은 경우 build/*# build 폴더 내에 있는 모든 파일 및 폴더 commit X !build/libs # build 폴더 내에 있는 libs 폴더만 commit 먼저 폴더 내에 있는 모든 파일 및 파일 commit X 폴더명/* commit하고 싶은 폴더 또는 파일 경로 작성하기 !폴더명/경로 출처 https://hyeonseok.com/blog/797

기타 기술 2023.06.07

OpenAPI를 SpringBoot에 적용하기

OpenAPI의 API Keys 발급하기 OpenAPI에서 API keys 발급받기 Create new secret key 클릭을 통해서 API Keys 발급하기 발급한 키의 Secret key값은 발급 후에 확인불가능하니 미리 키값을 복사해서 저장하기 OpenAI key를 환경변수에 저장하기 환경변수에 복사한 key값을 저장하기 application.yml에 OpenAI key 적용하기 발급받은 OpenAI Key를 환경변수에 저장해서 사용하기 GitHub에 코드가 올라왔을 때, 키가 공개되는 것을 방지 chatgpt: api-key: ${OPENAI_KEY} // OpenAI key 키값은 유출되면 OpenAI에서 자동으로 키를 만료시키므로 주의하기 build.gradle 의존성 추가하기 depend..

기타 기술 2023.03.30

연관관계에 있는 객체 생성에 관한 고찰

연관관계에 있는 객체를 생성할 때, 객체만 생성하면 저장을 하지 않았지만 객체가 저장되는 현상 확인 이유를 찾지 못함(놓친 기초가 있어서 그렇다고 생각함) Chat GPT에 질문을 함 질문 1 jpa를 사용할 때, 다대다관계에서 다대다관계 테이블을 생성하고 저장하지 않았을 때 저장되는 이유는 무엇인가? 답변 JPA(Java Persistence API)는 Java 프로그램에서 데이터베이스를 쉽게 접근할 수 있도록 해주는 프레임워크입니다. 다대다(Many-to-Many) 관계에서, JPA는 기본적으로 다대다 관계 테이블(join table)을 생성하지 않습니다. 그러나, 엔티티 간의 다대다 관계를 표현하기 위해서는 다대다 관계 테이블이 필요합니다. 이때, JPA는 이를 위해 다대다 관계 테이블을 자동으로 ..

기타 기술 2023.02.10