전체 글

imSoo TecBlog
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 분산락은 분산시스템으로 부터 들어오는 공유자원의 데이터의 무결성을 위해 ..
Problem 카프카로 서버간의 restAPI 통신을 구현을 하려고 하던 중... 게시판에는 멤버정보 들어간다. 게시판 생성요청 정보에는 게시판 제목 멤버 id 게시판 완료 게시판 제목, 멤버 이름(작성자) 게시판 생성요청시에 작성자id 를 가지고 멤버 서버로 멤버 정보를 요청하는 방식을 해보려고 한다. 카프카를 사용할때 1 . 게시판서버 게시판생성메서드에서 프로듀서로 작성자id 를 특정 토픽에 보내고 2 . 멤버서버에서 컨슈머 리스너를 통해 해당 토픽에 요청정보가 들어오면 3 . 요청을 처리하고 다시 객체를 반환 해줘야 하는데 이것을 다시 프로듀서로 작성하고 4 . 게시판서버에서 리스너로 응답받은 객체를 생성메서드에서 처리를 완료하여 게시판객체를 완성시키려고 했다.. 찾아보니 컨슈머리스너는 void 이..
problem 코틀린 - 자바 - 위 에러는 코틀린과 자바 같은 오류인데 카프카 -> 서버 데이터를 받아오려고 하는데 데이터가 맞지 않아 서버 롤백 > 카프카에서 서버로 데이터 삽입 > 서버 롤백 > 데이터 삽입 ... 무한으로 흘러가서 발생하는 오류였다... ListenerConsumer 클래스의 run( ) 메소드를 보면 아래와 같이 while 형태로 구현되어있다. while (isRunning()) { try { pollAndInvoke(); } catch (...) { ... } ... catch(Exception e) { handleConsumerException(e); } } 결국 commit이 되지 않아, 같은 offset에서 계속 재시도하게 됩니다. 이로 인해, spring-kafka는 E..
imSoo
sudoSoooooo