직렬화란? 자바가 객체를 바이트 스트림 으로 인코딩하고(직렬화) 그 바이트 스트림으로부터 다시 객체를 재구성하는 (역직렬화) 메커니즘이다. 직렬화의 단점 직렬화의 근본적인 문제는 공격 범위가 너무 넓고 지속적으로 더 넓어져 방어하기 어렵다는 점이다 바이트 스트림을 역직렬화하는 과정에서 readObject 메서드는 그 타입들 안의 모든 코드를 수행할수 있다 신뢰할 수 없는 스트림을 역직렬화 하면 원격 코드 실행(remote code execution), 서비스 거부(denial-oof-service)등의 공격으로 이어질수 있다 가젯 메서드 역직렬화 과정에서 호출되어 잠재적으로 위험한 동작을 수행하는 메서드 static byte[] bomb() { Set root = new HashSet(); Set s1 ..
Java11 Java 11 이후 Oracle JDK는 더 이상 상업적 용도로 무료로 사용할 수 없습니다.(무료로 사용하려면 OpenJDK 사용) 추가된 기능 javac 명령 사용하지않고 java 명령어로만 실행가능 (암시적 컴파일) String 클래스 새로운 유틸리티 메서드 추가 isBlank() - 빈 문자열 및 공백 만있는 문자열은 공백처리 System.out.println(" ".isBlank()); //true String s = "joeylee"; System.out.println(s.isBlank()); //false String s1 = ""; System.out.println(s1.isBlank()); //true lines() - 라인단위로 분할해 스트림으로 반환 String str = ..
1. 영화 예매 시스템 구현하기 /** * 영화를 표현 * 제목, 상영시간, 기본요금, 할인정책을 가지고 있음 */ public class Movie { private String title; private Duration runningTime; private Money fee; private DiscountPolicy discountPolicy; public Movie(String title, Duration runningTime, Money fee, DiscountPolicy dIscountPolicy) { this.title = title; this.runningTime = runningTime; this.fee = fee; this.dIscountPolicy = dIscountPolicy; } p..
1. 티켓 판매 어플리케이션 구현 /** * 극장을 표현 * 판매원을 가지고 있음 */ public class Theater { private TicketSeller ticketSeller; public Theater(TicketSeller ticketSeller) { this.ticketSeller = ticketSeller; } public void enter(Audience audience) { if(audience.getBag().hasInvitation()) { Ticket ticket = ticketSeller.getTicketOffice().getTicket(); audience.getBag().setTicket(ticket); } else { Ticket ticket = ticketSell..
람다란? 메서드로 전달할 수 있는 익명함수를 단순화 한 것입니다. 함수형 프로그래밍(Functional Language)에서 온 개념으로 매개변수(parameter)를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체(추상메소드를 한개 포함한)를 생성합니다. 아래와 같이 자바8 이전에는 메서드를 값으로 쓸 수 없어 매개변수로 넘기지 못했습니다. 그래서 익명구현객체를 인스턴스화 시켜서 넘겨주었습니다. new Thread(new Runnable() { public void run() { System.out.println("자바 8이전의 스레드 생성"); } }).start(); 이런 부분을 해결하기 위해서 자바 8에서 람다를 사용해 메서드를 값으로 넘길 수 있었습니다.(익명구현객체를 자동으로 만들어줌) ..
- Today
- Yesterday
- Serializable
- 메인보드#asrock b650m #조립pc #후기이벤트
- exception
- concurrency
- nosql
- 영속성
- Design Pattern
- iterable
- LAMBDA
- observable
- 부하테스트
- 디자인패턴
- jvm
- Observer Pattern
- template
- reactive stream
- Effective JAVA
- reactive
- template method
- strategy
- Serialize
- Spring
- gslb
- Redis
- Concurrecy
- Java
- JMeter
- jdk11
- object
- in-memory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |