[CS] MSA 구조 정리
2022. 8. 4. 09:41
Computer Science/Web programming
싸피 프로젝트 때 MSA 구조를 적용해 개발해 봤지만, 그 개념만 대충 알고 있어서 다시 한번 정확히 MSA가 어떤 것인지 알아보고자 강의를 보고 정리해봤다. 강의는 네이버 클라우드 플랫폼의 [Talk&Talk] 누구나 쉽게 이해할수 있는 마이크로서비스 아키텍처(MSA) #1편을 참고했다. https://www.youtube.com/watch?v=8d4h7K_Fq-0 MSA가 무엇인지 설명하기 위해서는 모놀리식 아키텍쳐를 아는 것이 중요하다. 모놀리식 아키텍쳐란 어플리케이션을 개발할 때 (여기서 어플리케이션은 하나의 시스템) 하나의 어플리케이션 안에 모든 서비스의 비지니스 로직이 들어가있는 구조이다. MSA는 모놀리식의 반대 구조인데, 예를 들어 쇼핑몰을 개발한다고 생각해보자. 쇼핑몰에는 사용자 관리, ..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #2
2022. 1. 23. 18:57
Computer Science/JAVA
이번에는 Heap의 구조와 가비지 컬렉터에 대해 알아보자. Heap의 구조 Heap은 객체를 저장하는 가상 메모리 공간이다. '객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다' 라는 전제로 객체의 생존 기간에 따라 Heap의 영역을 나누었다. Heap에는 원래 3가지 영역이 있는데, 1. New/Young Generation 2. Old Generation 3. Permanent Generation 이 세가지 중 Permanent Generation은 JAVA 8부터 삭제된 영역이다. Heap - Permanent Generation 생성된 객체들의 정보의 주소값이 저장된 공간이다. Class Loader에 의해 로드되는 클래스, 메서드에 대한 메타 정보가 저장된다. 앞서 말했다싶이 ..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #1
2022. 1. 16. 19:30
Computer Science/JAVA
면접때 자주 나오는 질문 하나인 JVM 메모리 구조와 가비지 컬렉선에 대해 알아보도록 하자! 우선 JVM의 메모리 구조를 설명하기 위해서는 JVM이 무엇인지 알아야 하고, 자바의 3대 구성요소에 대해 알아야 한다. 자바의 3대 구성 요소 - JDK(Java Development Kit): JRE에서 제공하는 실행 환경과 자바 개발에 필요한 여러가지 명령어와 컴파일러를 포함하는 소프트웨어 - JRE(Java Runtime Enviroment): 자바 소프트웨어를 실행하기 위한 소프트웨어. 클래스 라이브러리, 로더 클래스, JVM을 포함한다. - JVM(Java Virtual Machine): 자바 바이트 코드를 해석하고 실행하는 가상 머신 자바 바이트 코드란? 사용자 언어인 자바와 기계어 사이의 중간 언어..
[Web] REST vs RESTful vs REST API(RESTful API)
2021. 12. 31. 00:49
Computer Science/Web programming
REST REpresentational State Transfer 네트워크 상에서 client와 server 사이의 통신 방식 중 하나이다. URI와 HTTP를 이용한 통신 목적의 아키텍처 스타일 아키텍처? (제약조건을 모두 만족하는 시스템) 아키텍처 스타일이므로 아키텍처 제작 시 사용되는 가이드의 의미로 사용되며 명확히 준수해야 하는 표준은 없다! 여기서 REST는 URI와 HTTP를 이용한 통신 목적의 아키텍처 스타일이라고 했는데, 평소에 URI과 URL의 차이를 헷갈리고 있었기 때문에 한번 짚고 넘어가려고 한다! 💡 URI와 URL의 차이점? URI : 특정 리소스를 식별하는 통합 자원 식별자를 의미. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스 URL : 흔히 ..