CS
-
[CS] AOPCS 2023. 1. 4. 10:51
AOP Aop는 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 즉, 공통된 로직이나 기능을 하나로 모으겠다는 것이다. 결론, Aop는 흩어진 관심사를 하나로 모으겠다. ( 공통 로직으로 처리하겠다! ) → AOP는 OOP를 대체하기 위한 것이 아니라 횡단 관심사를 깔끔하게 처리하기 어려운 OOP의 부족한 부분을 보조하는 목적으로 개발되었다 Aop 관련 용어 Aspect : 흩어진 관심사를 모듈화 한 것. Target : Aspect를 적용하는 곳. 클래스, 메서드 등.. Advice : 실질적인 부가기능을 담은 구현체 Join Point : Advice가 적용될 위치 혹은 끼어들 수 있는 시점. 참고로 스프..
-
[CS] BeanCS 2023. 1. 4. 10:29
Bean 스프링에서 빈이란 “ Pojo 기반의 자바 객체이다 “ POJO(Plain Old Java Object) - 주로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 Java Object를 지칭하며,Java Bean 객체가 대표적이다. 간단하게 getter / setter를 생각하면 될 것 같다. Bean 과 자바 객체의 차이점 Bean - 스프링 IoC 컨테이너가 관리하는 자바 객체 자바 객체 - 스프링 IoC 컨테이너가 관리하지 않는 자바 객체도 포함한다 결론, 자바 객체는 Bean + 스프링 IoC 컨테이너가 관리하지 않는 자바 객체 이다 ( Bean < 자바 객체 ) Bean 등록 방법 🌈등록하려는 객체를 XML에 설정한다. Service 내부에 Repository가 존재하기 때문에 pr..
-
[CS] 멀티 스레드CS 2022. 12. 27. 17:18
스레드 프로세스가 할당받은 자원을 이용하는 실행의 단위 하나의 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 Heap, Data, Code 영역을 공유 ( 멀티 스레드의 경우, 이 프로세스의 영역들을 공유 ) 하나의 프로세스를 안에서 다양한 작업을 담당하는 최소 실행 단위를 스레드라고 한다. 멀티 스레딩의 경우, 스레드 간의 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시킨다. 멀티스레드 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다. 이러한 작업 ( 프로그램 둘 이상을 동시에 실행 )은 컨텍스트 스위칭을 통해서 이뤄진다. 컨텍스트 스위칭은 엄청 빠르게 일어나면서, 유저의 시선에서는 프로그램이 동시에 수행되는 것 처럼 보인다 멀..
-
[CS] 클라우드CS 2022. 12. 27. 17:08
클라우드 클라우드란 인터넷을 말하며, 모든 가상화 서비스가 이뤄지는 공간을 말한다 클라우드 서비스는 SaaS라고 불리며, 인터넷 서비스이다. → 인터넷이 가능한 환경에서만 사용할 수 있다 ex) 네이버 클라우드, 구글 클라우드 클라우드 컴퓨팅은 컴퓨팅 리소스를 인터넷을 통해 필요에 따라 제공하고 사용한 만큼만 비용을 지불하는 것이다 ex) AWS 클라우드 이점 민첩성 클라우드를 통해 많은 기술에 빠르게 접근하여, 이 전보다 빠르게 구현하고자 하는 것들을 구현 할 수 있게 된다 탄력성 요구사항에 맞게 자원의 크기를 조절 할 수 있어 탄력적으로 자원을 운영할 수 있게 된다. 비용 절감 → 경제성 측면에서 좋다 간단히 말해서 서버 안사고 서버 운영안하고 싼 가격에 가상 서버 운영하니까 좋다. 클라우드 제공 형..
-
[CS] 추상클래스, 인터페이스CS 2022. 12. 27. 16:32
추상 클래스 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이다. 미완성 설계도 라고도 불린다 ( 미완성 → 추상 메서드를 포함한다는 의미 ) 상속을 위한 클래스이기 때문에 new를 통해 객체를 생성할 수 없다 class 앞에 "abstract" 예약어를 사용하여 상속을 통해서 구현해야한다는 것을 알려주고 선언부만 작성하는 추상메서드를 선언할 수 있습니다. abstract class 클래스이름 { ... public abstract void 메서드이름(); } 인터페이스 추상 클래스보다 추상화가 높아서, 추상 클래스와 달리 일반 메서드나 멤버 변수를 갖을 수 없다 기본 설계도라고 할 수 있습니다 다중 상속이 가능하다. interface 인터페이스이름 { public sta..
-
[CS] CDNCS 2022. 12. 27. 16:13
CDN ( Content Delivery Network ) 폭발적으로 증가하는 데이터를 최대한 지연 없이 효율적으로 전달하기 위해서 생긴 기술로써, 지리적인 제약없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠 전송을 할 수 있는 기술이고 이를 통해서 컨텐츠의 병목 현상을 피할 수 있다. → 느린 응답속도 / 다운로딩 타임 을 극복하기 위한 기술 한국인에게 꼭 필요한 기술이다 CDN의 원리 물리적인 제약을 해결하기 위해서 서버를 분산시켜 캐싱해두고 사용자의 컨텐츠 요청이 들어오면 가장 가까운 위치에 존재하는 서버로 매핑 시켜서 요청된 콘텐츠의 캐싱된 내용을 내어주는 방식으로 빠르게 데이터를 전송할 수 있게 된다. 동작 원리 최초 요청은 서버로 부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱장비에..
-
[CS] 메세지 큐CS 2022. 12. 27. 15:49
메세지 큐 프로세스, 프로그램 간에 데이터를 교환할 때 사용되는 통신 방법 중 하나 MOM(Message Oriented Middleware: 메세지 지향 미들웨어) 을 구현한 시스템을 의미한다 메세지 지향 미들웨어 - 비동기 메세지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미한다 간단한 정리, 메세지 큐는 메세지를 임시 저장하는 간단한 버퍼라고 생각하면 된다. → 메세지를 전송 및 수신하기 위해 중간에 메세지 큐를 두는 것이다. 메세지 큐는 왜 필요한가? 서버가 사용자에게 빠르고 안정적으로 정보를 전달하기 위해서 존재하며, 일부 작업을 메세지 큐에 맡김으로써 성능 향성을 위하여 필요하다 메세지 큐(Message Queue)의 장점 비동기 : Queue에 넣어서 나중에 처리가 가능하..
-
[CS] GC 알고리즘CS 2022. 12. 26. 18:02
GC는 heap 영역에서 발생하며, 더 이상 참조되지 않고 있는 객체를 알아서 해제해주는 작업을 말한다. GC 메모리 해제 과정 1. Marking 사용하는지 하지 않는지 ( 참조 or not ) 체크 → 모든 오브젝트 스캔 → 시간 소모 많음 2. Normal Deletion 참조되지 않는 객체를 제거 → 메모리를 반환. 메모리 할당기는 반환되어 비어진 블럭의 참조 위치를 저장해 두었다고 새로운 오브젝트가 선언되면 할당되도록 합니다. 3. Compacting 퍼포먼스 향상 위해 참조x 객체 제거 → 남은 객체 묶기 → 공간 생성 → 메모리 할당 빠름 Generational Garbage Collection 배경 모든 객체 mark, compact하는건 비효율 → 시간이 갈수록 적은 객체만 남는다 ( W..