본문 바로가기

전체 글

(106)
[NETWORK] IP, SUBNET / DHCP / DNS / HOSTS 1. IPIPv4는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜이다. 데이터가 정확하게 전달될 것을 보장하지 않고, 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서(그리고 UDP에서도 일부) 보장한다. IPv4의 주소체계는 총 12자리이며 네 부분으로 나뉜다. 각 부분은 0~255까지 3자리의 수로 표현된다. IPv4 주소는 32비트로 구성되어 있으며, 현재 인터넷 사용자의 증가로 인해 주소공간의 고갈에 대한 우려가 높아지고 있다. 이에 따라 대안으로 128비트 주소체계를 갖는 IPv6가 등장하였다. IP주소에는 클래스라는 개념이 있고 이 클래스의 개념을 알아야 어디까지가 네트워크 영역이고 호스트IP 영..
[Spring] 주석 1(Annotation) @Configuration, @Bean, @EnableAsync, @Async, @ExceptionHandler, @ResponseStatus, @ControllerAdvice, @Controller,  @Service,  @Repository, @RequestMapping,  @GetMapping,  @PostMapping ,  @DateTimeFormat    @Configuration, @Bean @Configuration은 Spring Framework에서 사용되는 어노테이션 중 하나로, 해당 클래스가 Spring 애플리케이션 컨텍스트를 구성하는 데 사용된다는 것을 나타냅니다. @Configuration이 붙은 클래스는 Spring의 Java 기반 구성 방식 중 하나인 Java Config를 사..
[DB] INDEX : 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 그렇기 때문에 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행된다면 각각 다음과 같은 연산을 추가적으로 해주어야 하며 그에 따른 오버헤드가 발생한다.CREATE INDEX index_nameON table_name (column1, column2, ...);DROP INDEX index_name;INSERT: 새로운 데이터에 대한 인덱스를 추가함DELETE: 삭제하는 데이터의 인덱스를 사용하지 않는다는 작업을 진행함UPDATE: 기존의 인덱스를 사용하지 않음 처리하고, 갱신된 데이터..
Proxy Pattern 프록시(Proxy) 패턴은 GoF(Design Patterns: Elements of Reusable Object-Oriented Software)에서 제안한 구조적 디자인 패턴 중 하나로, 대리자 객체를 통해 실제 객체에 접근하는 방법을 제공하는 패턴입니다. 이 패턴은 실제 객체에 대한 접근을 제어하거나 부가적인 기능을 제공하기 위해 사용됩니다. 프록시 패턴의 쓰임 가상프록시 꼭 필요로 하는 시점까지 객체의 생성을 연기하고, 해당 객체가 생성된 것처럼 동작하도록 만들고 싶을때 사용하는 패턴입니다. 프록시 클래스에서 자잘한 작업들을 처리하고 리소스가 많이 요구되는 작업들이 필요할 때에만 주체 클래스를 사용하도록 구현하며 위에서 예로 들었다시피 해상도가 아주 높은 이미지를 처리해야 하는 경우 작업을 분산하..
[JAVA] Thread-Safe, Concurrent Collection class, Double Checked Locking synchronized서버에 동시에 여러 request다 요청될 경우 data의 안정성과 신뢰성을 보장할 수 없습니다.따라서 data의 thread-safe 를 하기 위해 자바에서는 synchronized 키워드를 제공해 스레드간 동기화를 시켜 data의 thread-safe를 가능케합니다. Synchronized 키워드는 변수와 함수에 사용해서 동기화 할 수 있습니다.하지만 Synchronized 키워드를 너무 남발하면 오히려 프로그램 성능저하를 일으킬 수 있습니다.  동기화 메서드메서드 전체를 동기화하여 한 스레드가 메서드를 실행하는 동안 다른 스레드의 접근을 막습니다.public class Counter { private int count = 0; // synchronized 메서드 ..
Class Loader & Hot Deploy Class Loader란?Class Loader는 자바 바이트코드를 읽어들여 클래스 객체를 생성하는 역할을 담당한다.  클래스 로딩 방식에는 load-time dynamic loading과 run-time dynamic loading이 있다.load-time dynamic loading은 클래스를 로딩하는 과정에서 다시 필요한 클래스를 로딩한다. 예를 들어 HelloWorld 클래스 내에 System.out.println이 있다면 java.lang.System을 로딩할 것이다. run-time dynamic loading은 클래스 내 코드를 실행하는 과정에서 필요한 클래스를 로딩한다. Class.forName()을 사용하는 경우가 대표적이다. 클래스 로딩의 순서는?Bootstrap Class Loader..
Tomcat 인코딩, IP버전셋팅 ( IPv6 > IPv4) 1.  IP V6 >  IP V4 아이피가 0:0:0:0:0:0:0:1 이라는건 ipv6의 주소를 가져온것으로 ipv4로 봤을때 127.0.0.1 이 맞다. localhost로 서버에 접속했을 때 생기는 현상이며, 10.10.10.1 과 같은 아이피로 접근했을때는 정상적으로 가져온다. 윈도우7 에선 기본적으로 IPv6를 리턴하므로 WAS 세팅으로 바꾸어 주면된다. WAS Arguments를 세팅해보자. eclipse에서 톰캣을 실행시 셋팅     메뉴의 Run -> Run Configurations -> Arguments 탭 -> -Djava.net.preferIPv4Stack=true 추가vs코드 셋팅 인텔리제이 셋팅2.  Tomcat  CaracterSet Eclipse에서 Tomcat 서버를 선택하..
JMX(MBean), JOLOKIA, SpringBoot, Actuator JMX(Java Management Extensions) JMX(Java Management eXtensions)는 응용 프로그램(소프트웨어)/객체/장치 (프린터 등) 및 서비스 지향 네트워크 등을 감시 관리를 위한 도구를 제공하는 자바 API이다.  JDK 1.5 이상부터 기본적으로 탑재된 기능 자바 어플리케이션의 모니터링과 관리 기능을 제공한다. Non-Java Resource와 하드웨어에 대해 wrapping한 인터페이스를 제공하며, API를 외부로 노출해 application 설정 및 통계데이터를 수집할 수 있는 기능을 제공한다. mBean으로 알려진 하나 이상의 사용자 JavaBean 오브젝트를 통해(혹은 리소스를 호출하는) 애플리케이션, 디바이스, 서비스를 원격으로 제어할 수 있다. mBean..