f '분류 전체보기' 카테고리의 글 목록 (2 Page) — 하늘속에서IT

분류 전체보기

    [GitHub] Github-Action 에 환경변수에 multiline string 을 사용하기 위해 어떻게 해야 할까?

    발단 최근 Github Action 을 활용하여 호출된 코드의 결과물을 release 주기적으로 업로드하고자 시도하였고 이 과정을 정리합니다. 문서 Workflow commands for GitHub Actions - GitHub Docs Actions can communicate with the runner machine to set environment variables, output values used by other actions, add debug messages to the output logs, and other tasks. Most workflow commands use the echo command in a specific format, while others are in docs.gi..

    [ETC] StringEscapeUtils 사용할 때 오류가 발생한다면?(feat. Could not initialize class..)

    발단 html escaping 된 정보가 그대로 DB 에 저장되어 있기에 이를 unescaping 처리하여 사용자에게 보여져야 한다는 요구사항을 처리하는 과정에서 발생하게 된 문제를 해결하는 과정을 나열합니다. html escaping 된 정보 해결 방법 접근 SSR 환경에서 작업중임으로 html entity( )등과 같은 텍스트에 대한 직접 변환을 처리 SSR 로는 그대로 값을 내려주고 프론트에서 escaping 하여 값을 처리 SSR 환경을 사용하고 있음으로 1번 방식을 선택 1번 방식은 간단하나 html entity 요소들이 많기에 라이브러리를 사용하기로 하였다. 마침 apache commons-net 을 사용중에 있음으로 StringEscapeUtils 클래스를 사용하려 하였다. 문제발생 문제1...

    [JPA] 연관관계를 맺은 객체에 대해 지연 로딩이 동작하지 않는다면(feat. kotlin, hibernate, lazy-loading)

    발단 스케줄러 작업을 통해 주기적으로 DB 요청을 하는 상황에서 로그를 살펴보니 원하지 않았던 정보까지 요청하고 있어 어떻게 해결하게 되었는지 공유하고자 합니다. 환경 Spring Boot > 3.0 Kotlin Kotlin 의 final 정책 이해를 돕기 위해 간단히 Kotlin 의 정책에 대해 얘기해보고자 합니다. Effective Java, "Item 17: Design and document for inheritance or else prohibit it" `Effective Java` 2001 연도에 출판한 책으로 Java 의 효율적인 사용과 좋지만 흔히 사용되지 않은 개발패턴에 대해 언급한 저명한 서적입니다. 해당 책에서 `상속을 위해 디자인과 문서화 하지 않을거면 지양해라` 라는 챕터를 다룬..

    [Gradle] Spring Boot + Gradle 환경에서 bootBuildImage 의 createdDate(생성 일자)의 표기가 1980년도로 되어있다면?(feat. kotlin, intellij)

    발단 intellij 환경에서 gradle 플러그인을 통해 bootBuildImage 로 docker 의 image 를 관리할 때 생성일자가 과거로 설정되어있는 것을 확인하였다. 환경 Spring Boot 3.1.3(kotlin) build.gradle.kts 해결 tasks.withType{ ... createdDate = "now" // 또는 ISO 8601 규격에 맞는 값을 입력 } 참고 stack overflow 를 통한 원인 Spring Boot 2.3.0 buildpack builds image with creation date 40 years ago I've tried to use buildpack in a maven project with Spring Boot 2.3.0 running: m..

    [Spring Boot] @ModelAttribute 로 맵핑하려는 대상의 depth 가 2 이상일 때 요청하였는데 오류가 난다면?(feat. kotlin)

    발단 최근 작업중인 프로젝트에서 등록 기능에 파일이 포함되어야 할 수 있기 때문에 @RequestBody 가 아닌 @ModelAttribute 로 mutlipart/form-data 타입의 요청을 다루어야 하였다. 이 때, dto 가 2-depth 가 되며 생긴 문제이다. 예시 코드 @RestController @RequestMapping("") class TestController { @PostMapping("") fun hiPost( @ModelAttribute body: TestDto, ){ ... } } data class TestDto( var name: String = "", var testInnerDto: TestInnerDto ) data class TestInnerDto( var age:..

    [Nginx] 웹에서는 동작하는데 모바일에서 동작하지 않는다면 파일의 크기를 고려해보자!(feat. 파일의 크기 제한 413)

    발단 최근에 토이 프로젝트를 진행하며 웹에서는 동작하는데 모바일에서 같은 동작임에도 오류가 발생하여 공유하고자 한다. 문제 발생 웹에서는 `파일`을 전송하고 모바일에서는 `카메라를 조작하여 서버에 파일`을 전송한다. 둘은 같은 동작을 함에도 왜인지 모바일에서는 정상적으로 요청을 할 수 없었다. 원인 로그를 확인하여 보니 413 오류를 내 뱉고 있었고, 이는 서버가 허용할 수 있는 크기보다 더 큰 크기의 파일을 전송하고 있다는 것을 의미하였습니다.(아래 참고 확인) 해결 방법 첫번째로 파일의 크기를 리사이징하여 서버가 허용할 수 있는 크기의 파일을 보내는 방법과, 두번째로 서버가 허용할 수 있는 파일의 크기를 늘리는 방법이 있을 것 입니다. 이 중에서 저는 프로젝트의 방향성에 따라 두번째 방법을 선택하여 ..

    [React] 모바일 환경에서 카메라를 통해 이미지를 획득하는 방법(feat.. input, environment)

    발단 디바이스의 카메라를 제어해야 하는 상황에서 간단하게 카메라를 통해 이미지를 획득할 수 있는 방법을 알게 되어 공유합니다. 카메라 제어 방법 위 input 의 이벤트를 발생시키게 되면 모바일 환경에서 카메라를 제어할 수 있습니다. Capture 프로퍼티 `environment, user` 두가지 속성을 가집니다. environement : 모바일 환경의 후면부 카메라를 제어합니다. user : 모바일 환경의 전면부 카메라를 제어합니다. capture 프로퍼티는 모바일 환경에서만 동작하는 API 임으로 웹에서는 우리가 아는 input 으로써의 동작을 행합니다. 자세한 설명은 아래 참고를 확인하여주세요. 간단한 카메라 예제 코드 import React, {useState} from 'react'; fun..

    [nginx] 윈도우즈 환경에서 nignx 를 통한 서버를 구성시 확인해야 하는 방화벽 요소(feat.. 방화벽)

    발단 서버용 컴퓨터를 통해 서비스를 진행하기에 앞서 nginx 로 웹서버를 구성하고자 하였다. 도메인까지 연결을 맺은뒤 연결을 시도하였는데 ping 은 패킷을 응답받았지만 페이지 접근이 불가하였다. 환경 windows 11 nignx 1.24.0 도메인 연결은 맺어진 상태이고, 내부에 server 도 뜨워진 상태이다. Nginx 설정 http { ... server { listen 80; server_name 연결된 도메인; location / { proxy_pass http://localhost:[띄워진 서버 포트]/; } } ... } 위 코드에서처럼 `연결된 도메인`에 접근하게 되면 내부에 띄워진 서버로 `리버스 프록시`를 시도하여 연결된다. 문제 추론 체크리스트 도메인이 정상적으로 연결되었는가? ..

    [DB] JPA 버전 다운그레이드 과정에서 동작하던 sql 이 동작하지 않는다면(feat. native query)

    발단 정부 프레임워크 사용을 위해 기존의 spring boot v3 가 아닌 v2 로 다운그레이드를 진행하면서 sql 이 실행되지 않아 동작하지 않는 경우가 발생하였다. 프로젝트를 진행하며 DB 검색을 위한 조건이 많지 않다면 JPA 의 native query 를 사용하였습니다. 이 때 sql 작성시 `;`을 붙여 해당 query 의 끝을 의미하게 하였습니다. 환경 spring boot starter jpa 페이징과 같이 사용 ... 원인 Spring boot 의 다운그레이드를 언급한건 jpa 의 버전이 spring boot 버전에 따라 달라지는 것을 명시하기 위함이다. 마이그레이션 전에 동작했지만 이후 동작하지 않은 이유는 `;` 때문이었습니다. JPA 버전에 따른 sql 전처리? v3 에서는 `;` ..

    [Github] github packages maven 방식으로 업로드(feat. intellij, 예제)

    Github package 란? Github 문서 설명 GitHub Packages is a software package hosting service that hosts software packages privately or publicly for designated users and makes them available as dependencies in your project. 깃허브 패키지는 비공개/공개적으로 설계된 소프트웨어를 호스트하고 프로젝트에 의존성으로 사용가능하게끔 만들어진 소프트웨어 패키지 호스팅 서비스 이다. 여기서 호스팅은 서버를 빌리는 행위보다도, 제공한다 정도로 해석하는게 맞지 않을까 싶다. Maven 으로 Github 패키지 구성 Github PAI(Personal Access ..