[Java] GC log 확인하기(내 가녀린 EC2인스턴스는 정말 GC때문에 죽는게 맞을까? + 갑자기 튀어나온 SerialGC..?)
Web_Backend/Java2024. 5. 20. 22:25[Java] GC log 확인하기(내 가녀린 EC2인스턴스는 정말 GC때문에 죽는게 맞을까? + 갑자기 튀어나온 SerialGC..?)

0. 상황    - 이전 글 에서 말했듯이 aws의 t4g.micro(기존 : t3.micro)라는 작고 가녀린 ec2인스턴스에 docker compose로 spring 어플리케이션을 3개 + nginx까지 구동시키다가, oom kill java 이슈가 발생했다..(해당 상황을 참여중인 커뮤니티에 공유하니, 모두들 이구동성으로 t3.micro, t4g.micro에 사과하라고 하셨다😅😅)1. 에러코드 전문    - ec2 인스턴스의 System log에서 발견한 oom 관련 로그는 아래와 같았다.[69465.875991] systemd invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj..

Web_Backend/DB2024. 5. 16. 02:33[멘토링] NoSQL에서 "no"의 해석, 가상환경과 DB

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  NoSQL에서 no의 해석에서는 의견이 갈린다고 들었습니다. 멘토님께서는 NoSQL에서 no를 어떻게 해석하시나요?- no- not only- non-relational operational- non-relational database 👨‍🎓 A1.  no는 not only의 NO라고 봅니다.SQL이 DB에서 우선순위가 높은 선택지였을때 나온것이 noSQL이라 불리우는 범주의 DB였기 때문입니다.즉, RDB만으로는 해결하기 어려운 문제가 점차 가속되던 상태에서 나온것이 noSQL입니다.(데이터가 늘어나는데 RDB에서는 그를 따라갈만한  RDB 퍼포먼스가 잘 나오지 않았고, DB가 못견뎌서 램을..

Web_Backend/Spring2024. 5. 15. 23:34[멘토링] DTO의 분리시기, innerClass와 record, 비동기 통신 응답 방법관련 고민(kafka, websoket, gRPC..?)

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  멘토님께서는 service DTO controller DTO의 분리시기가 언제라고 보시나요? spring boot 어플리케이션에서 dto를 사용 할 때 어플리케이션 개발 초기에는 컨트롤러와 서비스 레이어 각각 나눠서 두기에는 두 dto간 요소 차이가 없을것이고 결국에는 코드의 중복으로 이어지기에, 대부분의 개발 초반에는 하나의 dto로 개발을 진행한 뒤, 프로젝트 규모가 커지면 추후에 분리하는편이라고 들었습니다. 저 또한 토이프로젝트 팀원들과 dto의 레이어별 분리 관련해서 논의를 진행중에 있습니다. 멘토님께서는 두 레이어에서 dto를 분리해야하는 시기는 언제쯤이라고 보실까요…! 👨‍🎓 A1...

Web_Backend/Spring2024. 5. 15. 23:20[멘토링] 프로젝트에서 버전 선택의 기준, 버전 이슈 의심되는 상황에서 대처법

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  지난 11월 23일에 Spring Boot 3.2가 정식 릴리즈 되면서 생긴 궁금증입니다…!멘토님께서 보시기에, 현 상황에서 첫 스프링 프로젝트를 진행할 신입 개발자가 새로운 팀 프로젝트를 진행한다면가장 최근 릴리즈 버전인 3.2버전을 사용하는것을 추천하시는지, 아니면 조금 더 안정화되고 레퍼런스가 많은 3.0 혹은 3.1 버전을 추천하시는지 궁금합니다…! 👨‍🎓 A1.  제가 개발을 한다고 하면, 저는 새로운 이슈를 마주하는것을 즐기기 때문에 3.2버전을 쓸 것 같습니다. 하지만 신입과 주니어 개발자라는 대상이라고 하면 레퍼런스가 많은 3.0버전을 사용하라고 할 것 같습니다. 어느정도 경력이..

Web_Backend/DB2024. 5. 15. 20:24[멘토링] 특정 entity에 1:1 관계로 여러 개의 entity가 묶여있는 상황에서 특정 entity를 포함한 연계 entity들을 통합 조회하는 경우, 연계 entity의 값이 없는 경우에 대한 처리방법

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  특정 entity에 1:1 관계로 여러 개의 entity가 묶여있는 상황에서 특정 entity를 포함한 연계 entity들을 통합 조회하는 경우, 연계 entity의 값이 없는 경우에 대한 처리방법을 고민하고 있습니다.특정 entity에 여러개의 entity가 1:1관계로 묶여있습니다. 특정 entity에 1:1 관계로 여러 개의 entity가 묶여있기 때문에 entitygrapth를 이용해 일시에 값을 받아오고자 합니다. 하지만 연계되는 entity가 실제로 존재할지 아닐지는 알 수 없으며, 연계되는 entity값이 아직 생성되지 않았을 수 있습니다. 이러한 상황에서 현재 떠올린 방법은 두가지가..

Web_Backend/Spring2024. 4. 2. 21:58[멘토링] spring에서 모든 request에 특정 정적 리소스를 담아서 보내줄 수 있는 방법이 있을까요?

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  spring에서도 모든 request에 특정 리소스를 담아서 보내줄 수 있는 방법이 있을까요?Spring backend, React frontend 프로젝트에서 프론트와 백엔드 어플리게이션을 서버에서 각각 구동시키는것이 아닌, react 앱을 빌드 한 뒤 spring 어플리케이션의 정적 리소스에 담아서 보내고자 합니다. 기존에 node 프로젝트애서 동일한 방법(프론트 앱 빌드 후 백엔드 서버의 resource로 전달)을 사용했던 경우에는 특정 정적 리소스를 모든 requerst에 담아서 보내도록 설정을 할 수 있어서 관련 설정을 해주었는데, spring에서도 모든 request에 특정 리소스를 담..

Web_Backend/Node.js2024. 1. 25. 15:39[Node.js] Express(Middleware, MVC, Pug)

오늘 수강한 강의 : 【한글자막】 NodeJS 완벽 가이드 : MVC, REST APIs, GraphQL, Deno오늘의 강의 정리 📗Express.jsExpress.js는 Node.js를 위한 간편하고 유연한 웹 애플리케이션 프레임워크로, 웹 및 모바일 애플리케이션을 빠르게 개발할 수 있도록 도와줌. Express.js는 빠르고 간단한 웹 애플리케이션을 구축하기 위한 강력한 도구이며, Node.js의 생태계에서 많은 개발자들에게 선호되고 사용되고 있음주요 특징:미들웨어 지원:Express.js는 미들웨어를 지원하여 요청과 응답 사이에 여러 작업을 수행할 수 있습니다. 미들웨어는 app.use() 메서드를 통해 추가되며, 요청 처리 파이프라인을 구성할 수 있습니다.라우팅:Express는 HTTP 메서드..

Web_Backend/Node.js2024. 1. 25. 15:39[Node.js] V8 JavaScript Engine, Node.js 와 Express js 그리고 NestJS

Rest APINode.js 와 Express js 그리고 NestJSJavaScript (JS)개요:웹 브라우저에서 실행되는 스크립트 언어로, 주로 클라이언트 측 웹 개발에서 사용된다.객체 지향 프로그래밍 언어이며, 동적 타입 언어로 변수의 타입을 런타임에 결정한다.V8 JavaScript Engine개요:Google에서 개발한 오픈 소스 JavaScript 엔진.주로 웹 브라우저 (Google Chrome)과 Node.js에서 사용되며, 빠른 성능과 최적화된 메모리 관리를 제공한다.Node.js개요:Chrome V8 엔진을 기반으로 하는 JavaScript 런타임 환경.서버 측 JavaScript 실행을 가능하게 하며, 비동기적이고 이벤트 기반의 I/O를 지원한다.npm (Node Package Ma..

Web_Backend/Spring2024. 1. 25. 15:38[Spring] Spring Boot / Spring / Spring MVC, @Primary / @Qualifier, @Component / @Bean, Prototype / Singleton, @PostConstruct @PreDestroy, JDBC, Hibernate, JPA, Spring Data JPA

Spring Boot vs Spring vs Spring MVCSpring개요:자바 기반의 프레임워크로, 기업 환경에서 대규모 응용 프로그램을 개발하기 위한 종합적인 솔루션을 제공한다.모듈화, DI (의존성 주입), AOP (관점 지향 프로그래밍) 등을 지원하여 유연하고 확장 가능한 애플리케이션을 만들 수 있다.Spring Framework 구성요소:Core Container: IoC 컨테이너, 빈 팩토리 등이 포함되어 있으며, DI를 지원한다.Data Access/Integration: JDBC, ORM 등 데이터 액세스 및 통합을 위한 모듈 제공.Web: 웹 애플리케이션 개발을 위한 모듈로 Spring MVC 포함.AOP (Aspect-Oriented Programming): 관점 지향 프로그래밍을 ..

Web_Backend/Spring2024. 1. 24. 13:46[Java, kakao Rest API login] HttpURLConnection은 왜 지양되어야 하는가? (Feat RestTemplate, WebClient)

T-log 프로젝트에 대한 피드백 HttpURLConnection대신 사용할 수 있는 HTTP 웹 클라이언트에 대해서 알아보기를 조언받음. 보다 강력하고 유연한 웹 클라이언트란? HttpURLConnection RestTemplate WebClient

image