전체 글153 [Spring] 프로젝트 모듈로 구현시 templates 사용법 - Gradle 메인 모듈에 있는 build.gradle이다. 다른 모듈에 있는 templates 디렉토리를 사용하고자 한다.dependencies { implementation project(':file-service') implementation project(':domain') implementation project(':store')} 메인 모듈에 있는 build.gradle에 다음 코드를 추가하면 된다.task copyTemplates(type: Copy) { from(project(':file-service').file('src/main/resources/templates')) into 'src/main/resources/templates'}processResources.dep.. 2024. 11. 6. [Jenkins] pipeline script CI/CD pipeline script를 적용하여 CI/CD를 구현한 캡쳐화면이다. pipeline script를 단계별로 설명하려 한다.pipeline { agent any tools { gradle '8.11' } ...}pipeline scipt의 시작 부분은 tools인 maven으로 할지, gradle로 할지 명시한다. 사용할 tool은 이미 설치가 되어 있어야 한다. pipeline { ... environment { DOCKER_TAG = "latest" GITLAB_URL = "http://000.000.0.82:8081/test/test_cicd" REMOTE_SERVER = "garden@000.000.0.8.. 2024. 11. 4. [Ubuntu] time zone 세팅(asia/seoul) 다음 명령어를 입력하면 된다.sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime date 명령어를 통해 세팅된 시간을 확인할 수 있다. 2024. 10. 25. [Jenkins] 시간 설정 방법(Time zone) Jenkins 빌드를 하다보면 원하지 않는 시간대가 나온다. Jenkins 시간 설정을 해야한다. Jenkins 우측 상단에 사용자 이모티콘을 클릭한다. 좌측 메뉴에서 Account를 클릭한다. 스크롤을 내리면 Time zone에 대한 select box에서 원하는 시간대를 선택하면 된다. 참조:https://osg.kr/archives/738 Jenkins Timezone(젠킨스 타임존) 설정 방법 - 오솔길젠킨스에서 프로젝트 빌드를 수행한 시간이 현재 나의 시간과 맞지 않아서 Timezone 설정을 하고 싶은 경우 있으시죠? 현재 시간과 일치하지 않는 시간으로 그냥 사용하다 보면 나름의 적응을 하osg.kr 2024. 10. 25. [Ubuntu] server 22.04.5 설치시 네트워크 세팅 문제 Ubuntu server 설치시(ubuntu 22.04.5-live-server-amd64를 설치하였다)Network configuration에서 네트워킹 세팅을 하지 않으면 와이파이 연결이 안되는 문제가 생긴다. Network configuration 단계에서 네트워크 세팅을 해야한다. Network configuration 단계에서 첫번째 네트워크를 선택하여 ipv4로 네트워크 세팅을 하려고 한다. 입력하는 정보는 동일 네트워크를 사용하는 PC에서 인터넷 프로토콜 버전 4(TCP/IPv4) 속성에서 확인하면 된다. Ubuntu에 입력하는 인터넷 프로토콜 버전 4 매칭 값Ubuntu인터넷 프로토콜 버전 4(TCP/Ipv4)Subnet서브넷 마스크AddressIP 주소Gateway기본 게이트웨이Nam.. 2024. 10. 11. RequestDTO에 사용하는 @NoArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor는 객체 내부의 데이터 없이 객체를 생성할 수 있게 하는 어노테이션이다. 기본 생성자를 자동으로 만들ㄹ어주며, 주로 프레임워크가 객체를 인스턴스화할 때 사용된다. @NoArgsConstructor(access = AccessLevel.PROTECTED)라는 어노테이션을 사용하면 해당 객체를 외부에서 생성하지 못하도록 한다. 언제 해당 객체를 외부에서 생성하지 못하도록 하면 될까? requestDTO의 경우이다. requsetDTO의 경우 클라이언트가 서버에 데이터를 담아서 보내면 서버에서 DTO로 받는다. 이 객체는 서버에서만 인스턴스화 되어야하며, 외부에서 무분별하게 생성하면 안된다. DTO 객체가 임의로 생성된다면, 데이터 변경이 발생하거나 잘못된 상태의 객체가 만들어.. 2024. 9. 30. [Security] 보안 취약점 CSRF 해결 보안 취약점으로 CSRF가 걸리게 될 경우, 무엇을 안해서 걸린 것일까. 웹 애플리케이션에서 CSRF(Cross-Site Request Forgery) 공격을 방지하는 것은 중요하다. 스프링 시큐리티(Spring Security)는 기본적으로 CSRF 공격을 방지하는 기능을 제공한다. 이번 글에서는 스프링 시큐리티에서 CSRF 보호를 위한 설정을 어떻게 구성할 수 있는지, 그리고 어떻게 CSRF 토큰을 쿠키에 저장하고, SPA(Single Page Application) 환경에서 이를 처리하는지에 대해 알아보겠다. 1. CSRF란?CSRF(Cross-Site Request Forgery)는 웹 애플리케이션에서 발생할 수 있는 보안 취약점 중 하나로, 사용자가 의도하지 않은 요청을 통해 악의적인 행위를 .. 2024. 9. 6. [MVC] 정수 오버플로우 예외 처리 - GlobalExceptionHandler 활용 웹 개발을 할 때, 클라이언트가 서버로 잘못된 데이터를 전달하는 경우가 있다. 클라이언트가 일정 범위의 정수를 입력해야하는데 너무 큰 숫자를 입력하거나 잘못된 데이터를 전달하는 경우 발생하는 오류가 있다. 정수 오버플로우이다. 해결방안은 GlobalExceptionHandler를 통해서 전역적으로 예외를 처리하는 것이다. int인 testId를 PathVariable로 받는 코드이다. @RequiredArgsConstructor@Controller@RequestMapping("/test")public class TestController { @GetMapping("/{testId}") public String selectTest(@PathVariable("testId") int testId, .. 2024. 9. 5. 이전 1 2 3 4 ··· 20 다음