본문 바로가기

Computer Science

(251)
L4 스위치와 VIP L4 스위치란 ? L4스위치는 OSI 7계층 중에서 Transfort Layer에 해당되는 계층으로 들어온 데이터를 로드밸런싱 해주는 장비입니다. 여기서 로드밸런스는 부하분산을 의미하고, 부하를 균등하게 할당하는 방식이라고 생각하면 쉽습니다. 여기서 로드밸런싱 방식에는 다음과 같이 4가지 방식이 존재합니다. 1. SLB (Server Load Balancing) 2. FWLB (Firewall Load Balancing) 3. VPNLB (VPN Load Balancing) 4. CSLB (Cache Server Load Balancing) SLB (Server Load Balancing) IP주소와 Port번호를 통해 여러대의 웹서버에 로드밸런싱 알고리즘을 통해 전달하는 방식입니다. 이러한 방식을 위해..
Tomcat 톰캣의 역할 1. Servlet Container : Servlet에 대한 관리를 수행한다. Spring Boot의 Front-Controller인 Dispatcher Servlet도 여기에 포함된다. 2. Web server와 통신을 위한 소켓을 만드는 역할을 수행한다. 사용자의 Request를 받기 위해 WebServer로부터 해당값을 전달받아야 하는데 이때 Socket을 만들어 통신하는 역할을 수행한다. (Apache tomcat 5.5 이후 부터는 위에서 언급한대로 Web server의 기능인 httpd(웹서비스 데몬) native 모듈을 가지고와서 정적파일을 처리하기 때문에 별도의 Web server 기능에 뒤쳐지지 않는 정적파일 처리를 할 수 있습니다.) 3. 클라이언트로부터 request를 ..
JOB - ItemReader 어쩌구 저쩌구 해도 ItemReader를 FlatFileItemReader가 계승하고 있다. 두개의 컴포넌트를 가지고 있다. 1. Resource : Interface로써, 읽어들일 대상 파일을 나타내는 스프링의 Resource이다. ( springframework-core에 존재하며, org.springframework.core.io 패키지에 존재한다. ) 2. LineMapper의 구현체 : (springframework-batch-infrastructure에 존재하며, org.springframework.batch.item.file 패키지에 존재한다. ) 역할은 Resource에서 읽어드린 파일의 각줄에 매핑을 무엇을 할지 설정하는 것이다. 요 메인 컴포넌트 두개로 이어진게, FlatFileItem..
@Lazy Lazy Annotation : 사용할때, 초기화하겠다는 내용이다. 즉, Bean으로 등록하더라도 사용할때까지 해당 어노테이션 객체의 생성자를 호출하지 않는다.
NAVER Cloud SUMMIT 네이버 클라우드에서 Summit 이벤트를 개최했다. 4차삭업혁명으로 인해 클라우드는 이제는 뗄레야 땔수 없는 관계인걸 느끼고, 나아가 방향등을 직접 들어보고 느끼기 위해 참여를 결심하게 되었다. Session 순서 순서는 다음과 같이 Naver Cloud 박원기 대표님부터 웍스 모바일, 네이버 파이낸셜, 네이버 헬스케이 연구소 순으로 이루어진다. 네이버클라우드는 최근, 클라우드포씨와 손을 잡고 동남아 시장을 공략하고 있다는 뉴스를 접해본적이 있다. 하지만, 막상 '어떻게' ? '왜'? 에 대한 물음을 머릿속에서 잊어본적은 없다. 직접 참여하며 그 궁금증을 해소하고 풀어보고자 한다. 참여 방법 사전 등록이 가능하며, 오프라인이 아닌 12월 14일 온라인으로 진행되는 행사이다. 회사를 다니더라도, 오프라인이..
객체지향 원칙에 대한 고찰 1. 기능 구현 목록을 만들고 시작하자. 그리고 레거시라 느껴지고 도메인 지식이 늘어난다면 버리고 다시 짜라. 2. 테스트를 위한 생성자. 3. 컴파일 에러를 두려워 말자. 처음은 컴파일 에러가 당연하다. 왜냐면 프로덕션 코드가 없기 때문에. 4. iter를 치게 된다면, for ( 객체 : 객체 리스트) 가 나오게 된다. 5. 최대한 테스트를 통과할수 있도록 구현에만 집중하자. 6. 게터 메서드로 비교하지말고, 이퀄시를 통해서 객체간의 비교를 수행하자. 7. 구현과 설계를 한번에 하면 안된다. 구현을 빨리 해서 보려던 성급. 구현에만 집중해서 코드를 엉망으로 구현해서. 8. 구현 후 이너피스를 얻고 리팩토링(설계를 자주 한다)을 수행한다. 9. 블랭크는 메소드를 분리하기 위해 사용하기도 한다. a메소드..
Clean Code Clean Code의 목표 유지보수성이 높은 SW를 만든다. Clean Code의 공통적인 특징 사람이 읽고 이해하기 쉽다. 단순한 한 가지 역할을 하고, 명확한 이름(표현)을 갖고 있다. 중복이 없다. 테스트 케이스가 있다. 이해하기 쉽고, 변경하기 쉬운 코드. Clean Naming Clean Naming 우리는 개발의 약 75%의 시간을 코드를 읽고 이해하는데 사용한다. 변수, 상수, 함수, 클래스, 파일 등 SW의 주요 요소는 이름을 가진다. 좋은 이름은 내부를 들여다보지 않아도 동작과 목적을 쉽게 이해할수 있다. 좋은 이름을 사용하면 코드를 읽는 사람의 인지적 부하를 최소화 가능하다. Clean Naming을 만들려면? Funtion, Class 역할이 명확하면 Naming도 명확해진다. 불필요..
[2권] 토비의 스프링 7일차 HandlerExceptionResolver 전략은 예외가 발상했을때 이를 처리하는 로직을 갖고 있다. DispatcherServlet은 등록된 HandlerExceptionResolver중에서 발생한 예외에 적합한 것을 찾아서 예외처리를 위임한다. 디폴트 전략은 AnnotationMethodHandlerExceptionResolver, ResponseStatusExceptionResolver, DefaultHandlerExceptionResolver 세 가지가 등록되어 있다. ViewResolver - 컨트롤러가 리턴한 뷰 이름을 참고해서 적절한 뷰 오브젝트를 찾아주는 로직을 가진 전략 오브젝트다. DispatcherServlet은 간 전략의 디폴트 설정을 DispatcherServlet.propert..