전체 글

imSoo TecBlog
problem 공통적으로 package 쪽에 오류와 로컬 IDE에서는 문제없이 빌드가 됐지만 젠킨스에서만 빌드가 안되는게 라이브러리 참조를 못하고 있는줄 알았다. solution 필자는 멀티모듈 구성으로 각 모듈에 필요한 의존성만 넣어주다보니 부트모듈에 spring-web 의존성을 추가해주지 않아서 발생한 것이다. 그런데 이번에 쓸 내용들은 젠킨스 빌드에 관련된 이야기를 할 것이다. 젠킨스는 기본적으로 workspace에 계속 같은 이름으로 된 작업들을 덮어씌운다. = 불필요한 찌꺼기가 남아서 나중엔 꼬인다.. ( 경험담 ) stages { stage('Clean Workspace') { steps { script { // Jenkins 워크스페이스 디렉토리 지정 def workspaceDir = "$..
problem "could not execute statement; SQL [n/a]" 라는 오류가 났다. SQL구문 오류라는데 로그를 보니 Incorrect string value: ‘\xEC\x98\x81\xEC\x88\x98...’ for column `db명`.`테이블명`.`컬럼명` at row 1 대충 밸류 뒤에 저거 보니 인코딩 오류구나 싶어서 구글링ㄱㄱ solution 우선 테이블 정보를 한번 찾아봤다 SHOW CREATE DATABASE your_database_name; //결과 CREATE DATABASE `디비명` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ CHARACTER SET latin1 COLLATE ..
problem rds의 mysql 설정 정보를 바꾸려고 접속하려는데 부딪혔 난관에 대해서 정리해본다 solution 필자는 aws Linux 2023 버전을 사용했다 #ec2 버전 Linux버전 찾기 cat /etc/os-release Aws Linux는 yum install 로 하면 못 찾는다. sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm sudo dnf install mysql-community-server GPG 키 오류 .. GPG키 연결 sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 sudo yum update 다시 설치..
prblem version 정보를 환경변수로 사용 할 수 없을까 ? 따로 관리 하고 싶었다. //build.gradle.kts plugins { id("org.springframework.boot") version "3.1.0" apply false id("io.spring.dependency-management") version "1.1.0" kotlin("jvm") version "1.8.21" kotlin("plugin.spring") version "1.8.21" apply false } solution //gradle.properties ###application version applicationVersion = 0.0.1 ###kotlin version kotlinVersion=1.8.21 ..
Problem 레이어드아키텍처 나 헥사고날아키텍처.. 등등 에서 모듈을 나누는 경우가 많다. 모듈을 분리 하는 이유는 재사용성 , 계층간 관심사 분리 , 추상화 등이 있다. 무엇보다 이번에 계획하게 된 이유는 컨트롤러를 코틀린으로 작성하고 JPA를 직접적으로 사용하는 Service계층은 자바로 작 성하고 싶었다. 코틀린은 Null에 대한 안정성과 자바코드보다 훨신 더 간결함을 가지고 있는 언어이다. 위 장점은 요청을 받는 Controller 단에 최적의 언어라고 생각했다. 하지만 코틀린은 아직 Jpa 와 100프로는 어울리지 않는 언어라고 한다. https://tech.inflab.com/20240110-java-and-kotlin/ Spring Boot & JPA에서 Java와 Kotlin을 함께 사용..
problemRead 기능은 요청의 90프로를 차치 할 만큼 굉장히 중요하다또한, 일반적인 웹서비스의 기능은 서비스가 복잡해질수록 다양한 요구가 생기며,변경 역할과 조회 역할은 다른 성격을 띄게 되어 분리의 필요성이 커진다. ( 관심사 분리 )조회 서버의 스케일 업/아웃 하여 조회성능을 높일 수도 있다.그만큼 서비스의 복잡도도 엄청나게 늘어나고 유지보수 비용도 늘어난다.복잡도는 공부로 유지보수 비용은 몸빵으로 극복하면 되지 않는가 !solution이 글은 Redis를 통한 조회성능을 올리는 것을 목표로 한다.조회 서버와 DB를 분리하여 조회서버에서 redis의 데이터를 영속화 하여 관리하는 것으로 변경 해 보려고 한다.DB 를 분리하고 최종적으로 Read서버를 분리하는 모습으로 변화 된다.변경 전파 ( ..
problem티스토리 스킨을 바꿧는데 아래 현상처럼 몇 글자는 글자색이 변하지 않는 현상을 발견했다.solution원인은 다른 웹에서 복사를 하거나 , 메모장 , 기타 등등 에서 복사 붙여넣기 하면 티스토리 에디터에서 태그를 자동으로 생성해준다.또 공백은   이런 문자가 남는다.idea 1. 오른쪽 상단 메뉴바에 기본모드를 눌러보면 html 모드가 있다 그것으로 작성을 한다.이렇게 해결하라는 것을보고 굉장히 아찔했다.개발자면 자동화 아닌가 .... 알아서 지우게 해보자 열심히 찾은결과...idea 2. 스크립트를 넣어 자동으로 삭제 하기html 파일에 코드를 붙여 넣어 주자 !!// 최상단에 jquery를 추가해주자
problem DB 동시성제어 (PessimisticLock) : https://soobysu.tistory.com/127 [Spring] 선착순 이벤트 구현 ( 동시성 Pessimistic Lock) 문제 발급 가능 수량은 100장의 쿠폰이 있다. 10000명이 동시 접근 할때 쿠폰 발급을 정상적으로 수행 가능하게 하려면 어떻게 해야 할까 ? 냅다 코드를 짜버리면 이런식으로 100개 이상의 쿠폰이 soobysu.tistory.com 이전 글에서는 db의 PessimisticLock을 사용하여 공유자원에 대한 동시성 문제를 해결 했다. 이번 글에서는 레디스를 이용해 분산락을 사용하여 동시성 문제를 해결 하고자 한다. solution 분산락은 분산시스템으로 부터 들어오는 공유자원의 데이터의 무결성을 위해 ..
imSoo
sudoSoooooo