분류 전체보기

    Powermock maven 설정

    pom.xml 테스트 설정powermock 설정시 일부 라이브러리간 실행 안되는 문제가 안되서 기록해준다. Test.javaimport static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.Test; import org.junit.runner.RunWith; import org...

    MySQL 명령어 정리

    MySQL 명령어테이블 통계정보mysql> show table status like 'atin_story'\G 인덱스 통계정보mysql> show index from atin_story\G 쿼리 플랜mysql> explain select sql 인덱스 추가/제거alter table table_name drop index index_name;alter table table_name add index index_name(colunm1, column2); MySQL 인덱스B-Tree 인덱스 구조 사용NULL을 값으로 인식하여 인덱스에 포함됨인덱싱 컬럼에 대한 IN절은 Expansion으로 처리됨( UNION ALL )DESC 인덱스는 지원하지 않음 MySQL 플랜select_type : SELECT 유형typ..

    SPRING FRAMEWORK 5의 변화

    기본 JDK 지원 버전 업데이트Spring Framework 5.0 최소 요구 사항 : Java 8전체 Spring 프레임 워크 5.0 코드베이스는 Java 8에서 실행 Core Framework RevisionJava 8 reflection 기반으로 Spring Framework 5.0의 메소드 매개 변수에 효율적으로 액세스 가능코어 스프링 인터페이스는 이제 Java 8 기본 메소드를 기반으로 선택적 선언을 제공@ Nullable 및 @ NotNull 주석은 nullable 인수 및 반환 값을 명시적으로 표시런타임에 NullPointerExceptions 대신 컴파일 타임에 Null 값을 처리 가능 Core Container Updates선택적 주입 포인트에 대한 지표로 @Nullable 어노테이션 지..

    JVM 메모리 구조 (JVM Memory structure)

    JVM 메모리 구조 (JVM Memory structure)

    JVM 메모리 구조 (JVM Memory structure) JAVA Source : 사용자가 작성한 JAVA 코드JAVA Compiler : JAVA 코드를 Byte Code로 변환시켜주는 기능Class Loader : Class파일을 메모리(Runtime Data Area)에 적재하는 기능Execution Engine : Byte Code를 실행 가능하게 해석해주는 기능Runtime Data Area : 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간 Runtime Data AreaMethod AreaMethod Area, Class Area, Code Area, Static Area 로 불리어짐JVM이 읽어들인 클래스와 인터페이스 대한 런타임 상수 풀, 멤버 변수(필드), 클래스 변수(St..

    DB 트랜잭션 (Transaction)의 ACID 속성과 분산시스템 BASE 속성

    Transaction데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영구성(Durability)을 보장어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, Logical Units of Work)로 부름 ACID데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질원자성(Atomicity)트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력일관성(Consistency)트랜잭션이 실행을 성공적으로 완..

    OOP(객체 지향 프로그래밍) 5원칙 및 특성

    SOLID로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것애자일 소프트웨어 개발 전반적 전략의 일부 두문자 약어 개념 S SRP 단일 책임 원칙 (Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. O OCP 개방-폐쇄 원칙 (Open/closed principle) 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. L LSP 리스코프 치환 원칙 (Liskov substitution principle) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. I ISP 인터페이스 분리 원칙 (Interface segrega..

    Java 자료구조 비교

    Java 자료구조 비교

    여러가지 자료구조에 대한 비교를 해본다. Array (배열)같은 데이터 타입에 대해 데이터를 한 곳에 저장해두고 하나의 변수를 가지고 사용하는 것을 말한다. 1차원배열과 다차원 배열이 존재장점간단하게 사용 가능인덱스 통해 빠르게 데이터 접근 가능단점저장 공간이 제한적동적 할당을 통해 새롭게 정의 가능하지만 데이터 이동을 또 해야함 Iterable이름 그대로 반복할 수 있는지 확인하는 인터페이스다음과 같은 abstract method를 갖음 boolean hasNext () // 요소가 더 많은 경우 true를 반환합니다. E next () // 제네릭 타입 E의 다음 원소를 반환합니다. void remove () // 반복자가 반환 한 마지막 요소를 제거합니다. Collection모든 콜렉션의 상위 인터..

    TCP vs UDP

    TCP (Transmission Control Protocol)인터넷에서 많이 사용되는 socket 통신 방법보내야 하는 data를 네트워크가 허용하는 packet의 크기에 맞춰 자동으로 나눠서 보내는 것잘 보내졌는지 에러 없는지 체크하면서 packet을 잃어버리거나 잘못되지 않도록 검사함네트워크의 bandwidth에 부하가 생기지 않도록 자동으로 조절되면서 데이타가 보내지고, 주고 받는 데이타의 신뢰도를 보장전송 속도가 느림신뢰도 확보가 중요하거나 용량이 큰 데이타를 네트워크를 통해 전달해야 할 때, 실시간일 필요는 없을 때 활용하기 적합 UDP (User Datagram Protocol)UDP는 data의 빠른 전송이 특징packet이 잘 전달되었고 에러가 없는지를 매번 검사하지 않음오버헤드를 최소화..

    TCP 3 Way-Handshake & 4 Way-Handshake

    TCP 3 Way-Handshake & 4 Way-Handshake

    TCP 3-way hand shakingTCP/IP프로토콜 통신을 하는 응용프로그램이 데이터를 전송하기 전에 정확한 전송을 보장하기 위해 상대방과 세션을 수립하는 과정Client > Server : TCP SYN Server : LISTEN, Client : SYN_SENTServer > Client : TCP SYN+ACKServer : SYN_RECEIVEDClient > Server : TCP ACK Server, Client : ESTABLISHED SYN : 'synchronize sequence numbers' ACK : 'acknowledgment' 출처 : [1] https://notes.shichao.io/unp/ch2/ TCP 4-way Handshaking세션을 종류하기 위해 수행되는..

    OSI 7 계층 (OSI 7 Layer)

    OSI 7 계층 (OSI 7 Layer)

    Open System Interconnection 7 Layer 국제표준화기구(ISO :International Organization for Standardization)에서 개발한 모델 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층을 나누어 설명 더 이상 산업 표준으로 추천하지는 않음 OSI 모델이 현존하는 유일 네트워크 모델이 아님 많은 사람들이 TCP/IP 모델로 알려진 미국방성 (DoD) 모델을 더 선호 (이미지 출처 : http://www.escotal.com/osilayer.html) 1계층 물리 계층(Physical Layer) 비트 스트림 (전기적 충격, 빛 또는 무선 신호)을 전기적 및 기계적 수준에서 네트워크를 통해 전달 케이블, 카드 및 물리적 측면 정의를 포함하여 캐리어에서 데이터..