누구나 할 수 있는 웹 개발 with 이정우

Written byRamsbaby
이 블로그는 직접 개발/운영하는 블로그이므로 당신을 불쾌하게 만드는 불필요한 광고가 없습니다.

#My Github#My Portfolio#Blog OpenSource Github#Blog OpenSource Demo Site

👈
👉
#Spring Framework

[SpringFW] Spring WebFlux는 무엇이며, 왜 쓰나?

서론 회사에서 업무적으로 도입을 준비하는 과정에 공부하게 된 내용을 공유합니다. 많은 동시성을 처리하는 MSA 구조에서 도메인 단위의 마이크로서비스에 적용하기 좋은 기술스택인 것 같습니다. 코드 예시보다는 스프링 웹플럭스의 소개와 장/단점 위주로 포스팅해보려 합니다. 1. 스프링 웹플럭스는 무엇인가? 는 Spring5(2017년)에 새롭게 추가된 Reactive-stack의 웹 프레임워크입니다. 기존의 Servlet 기반 S…

#Spring Framework

[SpringFW] 트랜잭션 간단정리

서론 스프링을 사용하는 자바 개발자가 알아야 할 트랜잭션에 대한 간단한 개념과 주의사항에 대해 포스팅합니다. 1. 트랜잭션이란 무엇인가? 트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위입니다. 여러 쿼리문이 있더라도 commit이나 rollback이 수행되어야지만 트랜잭션이 종료되었다고 볼 수 있습니다. 주로 자바 프로젝트에서는 DB에 엑세스하는 비즈니스 로직에 트랜잭션에 대한 처리를 하거나 혹은 AO…

#Spring Framework

[SpringFW] Spring JPA 영속성컨텍스트 간단정리

서론 Spring JPA를 다루는 자바 개발자가 알아야 할 핵심요소인 영속성컨텍스트에 대해 간단히 짚고 넘어가려 합니다. (저 자신도 정리 할겸) 1. 영속성컨텍스트란 무엇인가? JPA에서 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻입니다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 합니다. 로도 불립니다. 로 생성된 에 의해 영속성컨텍스트는 관리됩니다. 즉, 엔티티를…

#MSA

[Etc] MSA 적응기 - 3(결론)

MSA로 프로젝트 구성 시 주의할 점 앞서 MSA 의 단점에서 언급했던 내용들이지만 다시 정리해봅니다. 서버 간 통신에서의 성능저하 모놀리식에서는 내부 메소드 호출이었기에 문제가 되지 않았지만, MSA 구조에서는 API통신을 통해 마이크로서비스들 간의 통신이 이루어지기 때문에 네트워크 비용이 발생한다. 상황에 맞는 통신방법(gRPC, GraphQL 등)을 택해 네트워크 통신 비용을 최소화 할 수 있도록 해야 합니다. 트랜잭션…

#MSA

[Etc] MSA 적응기 - 2-2(본론)

어떻게 MSA 구조를 사용하고 있는가? 앞서 말했듯, MSA 구조에 정답은 없지만 서비스 형태별로 유용한 구조는 몇가지 있습니다. 사실 다른 회사에서 어떤식으로 적용하고 있는지도 잘 모르지만, CSP(Cloud Solution Provider)에서 제공하는 서비스를 통해서 클라우드 상품을 개발하는 경우에는 아마 API Gateway 방식을 많이들 적용할 것 같습니다. API Gateway란? MSA 구조에서 는 클라이언트에…

#MSA

[Etc] MSA 적응기 - 2-1(본론)

MSA와 모놀리식의 차이점? 모놀리식이라는 표현이 원래부터 존재했었던게 아니라, MSA(Micro Service Architecture) 개념이 생겨나면서부터 전통의 아키텍쳐를 지칭하기 위해서 생겨난 단어로 알고 있습니다. 모놀리식 구조 모놀리식 아키텍쳐는 한마디로 한 프로젝트 내에서 UI, 비즈니스로직, DB Handler 등이 한데 모여있는 구조입니다. 모놀리식 구조는 내부 모듈간 Dependency 가 MSA 구조 대…

#MSA

[Etc] MSA 적응기 - 1(서론)

서론의 서론 MSA(Micro Service Architecture)를 다루게 되면서 겪었던 의문점들 및 느낀점들을 정리해보려고 합니다. 내용이 조금 길어질 것 같아 여러 포스트로 나누어 진행하게 되었습니다. 서론 MSA란 무엇인가? MSA가 자주 언급되는 배경은? MSA를 공부하게 된 이유? 본론 MSA와 모놀리식의 차이점? 어떻게 MSA 구조로 사용하고 있는가? 결론 MSA로 프로젝트 구성 시 주의할 점 느낀 점 으로 구…

#Spring Framework

[SpringFW] Spring Batch 간단 정리

서론 스프링 배치를 동작시키기 위한 코드구현보다는 개념에 대해서만 짧막하게 이야기하려고 합니다. 1. 스프링 배치란 무엇인가? 엔터프라이즈급 어플리케이션에서 주로 사용되며, 데이터 및 작업의 대용량처리를 위한 프레임워크입니다. 대용량처리를 위한 로깅, 트랜잭션관리, 작업통계, 재시작, 오류 데이터 처리 등을 Spring Batch 프레임워크가 지원해주며, 개발자는 비즈니스로직에 집중할 수 있도록 도와주는 툴이라고 생각하면 됩…

#JAVA

[JAVA] 자바 메소드 병렬 호출

서론 다소 황당한 블로그 주제지만 실제로 궁금증이 생긴 뒤 이를 해결해나간 과정을 적어보고자 합니다. 회사에서 Spring Batch 코드를 수정할 일이 있어 보던 중, 문득 이런 생각이 들었습니다. 위의 상황에서 updateSome 메소드가 종료되려면 총 30초가 소요되는데, 이를 병렬로 해결하면 가장 오래걸리는 task의 시간인 15초로 줄일 수 있지 않을까??? 각각의 메소드들은 서로에게 영향을 미치지 않는 독립적인 …

#JAVA

[JAVA] 자바 프로세스 힙메모리 설정 이슈

서론 OOM Killer에 의해 자바 프로세스가 예기치 않게 다운되는 현상이 발생하였습니다. 메모리 바운더리 설정을 하지 않은 자바 프로세스가 리눅스 OOM Killer에 의해 다운되었다고 생각했으나, 분명 해당 자바 프로세스는 메모리 설정이 되어있는 상태였습니다. 자바 프로세스에 -Xms, -Xmx 옵션을 통해 힙메모리를 부여하였으나, 여전히 프로세스 다운현상이 발생하였고, 프로세스의 메모리를 확인해 보았을때, 부여한 옵션…