profile
mokpo devlog
post-thumbnail

[Spring] @Transactional의 탄생배경

Spring 프레임워크를 쓰는 이유 중 하나는 트랜잭션 관리 기능 지원 때문일 것이다. Spring 이전의 EJB 환경 개발은 JDNI가 필수적이었으며 그만큼 xml 스키마의 작성량도 많았을 것이다. JTA(Java Transaction API)또한, JNDI를 사용해

2023년 2월 25일
·
0개의 댓글
·

글또 8기 다짐글

작년에 이어 올해도 어김없이 글또에 참여하게되었다. 지난 글또 기수를 마무리하고 그동안 나는 다니던 회사를 정리하고 이직을 하였다. 인하우스 서비스에 대한 욕망이 컸기 때문에 서비스 기업으로 가게되었고 그 덕분에 바빴다는 걸 핑계삼아 블로그를 내팽겨쳐뒀다..라는 것을

2023년 2월 10일
·
1개의 댓글
·
post-thumbnail

글또 7기 회고록

올해도 벌써 3개월 정도밖에 남지 않았다. 이번 해도 정말 이것 저것 하면서 열심히 살았는데 정작 남은 건 없는 기분이 들기도한다. (이 내용은 어차피 연말에 자세히 쓸 내용이니 스킵하고^^..) 올 해 나의 활동 중 가장 중심이 됐던 것은 아무래도 '글또'활동이

2022년 10월 15일
·
0개의 댓글
·
post-thumbnail

[Spring Webflux] 1. 동기 vs 비동기와 Blocking vs Non-blocking

최근 MSA 공부를 하면서 마주하게된 WebFlux 라는 것을 파볼까한다. 쓰레드 중심의 개발을 한 적이 많이 없어서 사실 좀 생소하고 이해가 안 가는 부분들이 많아 여러 글을 거쳐 천천히 정리해볼 예정이다.Spring Webflux는 Spring 5(Spring bo

2022년 9월 18일
·
2개의 댓글
·
post-thumbnail

Junction Asia Hackathon 2022 회고록 (2) - 본 대회 (ZEP Track 1st)

_2022년 8월 19일 부산 BEXCO에서 열린 Junction Asia 2022 Hackathon에 관한 문서입니다. _ 😃 Day1 전 글에도 기술했듯이 우리 팀은 백엔드 개발자 2명(필자 포함), 프론트엔드 개발자 2명, 디자이너 1명으로 최종 빌딩되었다.

2022년 9월 2일
·
0개의 댓글
·
post-thumbnail

Junction Asia Hackathon 2022 회고록(1) - 준비 과정

2022년 8월 19일 부산 BEXCO에서 열린 Junction Asia 2022 Hackathon에 관한 문서입니다.해커톤에 한 번쯤 참여해보고 싶다는 생각은 늘 가지고 있었다. 누구나 참여할 수 있는 행사이지만, ‘잘’ 하는 사람만이 나가야 좋은 성과를 얻을 수 있

2022년 9월 2일
·
0개의 댓글
·

처리율 제한 장치의 설계

네트워크 시스템에서 처리율 제한 장치는 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제한하기 위한 것이다.HTTP의 경우 API에 처리율 제한 장치를 뒀을 때의 이점은 뭐가 있을까?DoS공격에 의한 자원 고갈 방지비용 절감 : 추가 요청에 대한 처리릊 제한하면 서

2022년 8월 7일
·
0개의 댓글
·
post-thumbnail

[Apache Kafka] Docker 환경에서 Spring boot + Kafka 연동하기

ubuntu 18.04 LTSdockerdocker-composekafka (docker img : wurstmeister/kafka:2.12-2.5.0)docker-compose.ymlKAFKA_ADVERTISED_HOST_NAME은 카프카 클라이언트와 브로커가 통신

2022년 7월 4일
·
0개의 댓글
·

[Apache Kafka] Kafka Spring Boot 연동 오류 모음

listeners=PLAINTEXT://:9092 \`\`\`만든 토픽을 삭제하고 싶어 다음과 같은 명령어를 실행하면 토픽이 정상적으로 삭제되지 않고 리스트로 조회할 때 already marked for deletion 와 같은 문구가 붙어나오는 것을 볼 수 있다.

2022년 7월 2일
·
0개의 댓글
·
post-thumbnail

[Apache Kafka] 메세징 시스템과 Kafka의 작동 방식

아파치 카프카는 빠르고 확장 가능한 작업을 위해 데이터 피드의 분산 스트리밍, 파이프 라이닝 및 재생을 위한 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 게시-구독 메시징 플랫폼이다.메시징 시스템은 Kafka, RabbitMQ, Active

2022년 6월 26일
·
0개의 댓글
·
post-thumbnail

[MSA 개발기] Config Server

 보통 우리가 애플리케이션를 개발 시 코드에 상수나 특정 절대 경로를 하드코딩 하는 일은 거의 없다. 일반적으로 properties같은 환경 변수에 그것들을 관리하는데, 만약 프로퍼티가 변경될 경우에는 애플리케이션을 다시 배포하고는 한다. 특히, 클라우드 환경에서 같이

2022년 6월 12일
·
0개의 댓글
·

[Algorithm] Greedy(탐욕) 알고리즘

탐욕 알고리즘이란 Greedy(탐욕스러운, 욕심 많은) 이라는 뜻을 가진, 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법을 뜻한다.순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하

2022년 5월 25일
·
0개의 댓글
·
post-thumbnail

[MSA] 1. 모놀리틱 아키텍처와 마이크로서비스 아키텍처

만약 개발자들이 만든 웹앱을 각 Local에서 개발 후 서버에 배포한다고 해보자.\-> 최초 상용 배포 시 (Tomcat 1대, DB 1대) \-> SCP를 통해 Clean 배포 (stop -> delivery -> start) \-> DNS(12st.com) -> T

2022년 5월 14일
·
0개의 댓글
·

[Algorithm] 프로그래머스 - 순위검색 풀이

카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다.코딩테스트 참여 개발언어 항목에 cpp, java, python 중

2022년 4월 19일
·
0개의 댓글
·

Effective Java - 모든 객체의 공통 메서드(3) : toString을 항상 재정의히라

Object의 기본 toString 메서드는 잘 알다시피 우리가 작성한 클래스에 적합한 문자열을 반환하는 경우는 거의 없다. 클래스\_이름@16진수로\_표시한\_해시코드로나 반환될 것이다.toString 일반 규약에 따르면 간결하면서 사람이 읽기 쉬운 형태의 유익한 정

2022년 4월 17일
·
0개의 댓글
·
post-thumbnail

Effective Java - 모든 객체의 공통 메서드(2) : equals를 재정의하려거든 hashCode도 재정의하라

equals를 재정의한 클래스는 모두 hashCode도 재정의해야 한다. 그렇지 않으면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet 같은 컬렉션 원소로 사용할 때 문제가 될 수 있다.equals 비교에서 사용되는 정

2022년 4월 17일
·
0개의 댓글
·

Effective Java - 모든 객체의 공통 메서드(1) : equals는 일반 규약을 지켜 재정의하라

equals 메서드는 몇 가지 규약을 제대로 지키지 않을 경우 의도와 다르게 동작하여 프로그램에 오류를 발생시킬 수 있다. 재정의하지 않고 그냥 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. 각 인스턴스가 본질적으로 고유한 경우예컨대 Thread는 값이

2022년 4월 13일
·
0개의 댓글
·

Spring Boot + Redis 좋아요 캐시 시스템 만들기

개발환경 Spring Framework 5.3.15 Redis 6.2.6v MariaDB 10.6.5v 개발 소스 dependency 설정 소스 구조 Redis 설정 Lettuce(레터스)는 Java용 Redis Client이다. 레터스는 레디스 서버와 단일 커

2022년 3월 9일
·
0개의 댓글
·
post-thumbnail

로드밸런싱과 클러스터링의 차이

로드밸런싱이란 처리해야 할 업무 혹은 요청을 나누어 처리하는 것을 말한다. 컴퓨터공학에서는 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.서버 부하 분산은 외부의 사용자로부터 들어오는 다수의 요청(naver 같은)을

2022년 3월 9일
·
0개의 댓글
·

Effective Java - 객체 생성과 파괴(9) : try-finally 보다는 try-with-resources를 사용하라

자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야하는 자원이 많다. InputStream, OutputStream, java.sql.Connection 등이 그렇다. 상당 수가 finalizaer를 통해 이를 예방하려고 하지만 그리 믿을만하진 못하다. 전통적

2022년 2월 4일
·
0개의 댓글
·