
직렬화란? 자바가 객체를 바이트 스트림 으로 인코딩하고(직렬화) 그 바이트 스트림으로부터 다시 객체를 재구성하는 (역직렬화) 메커니즘이다. 직렬화의 단점 직렬화의 근본적인 문제는 공격 범위가 너무 넓고 지속적으로 더 넓어져 방어하기 어렵다는 점이다 바이트 스트림을 역직렬화하는 과정에서 readObject 메서드는 그 타입들 안의 모든 코드를 수행할수 있다 신뢰할 수 없는 스트림을 역직렬화 하면 원격 코드 실행(remote code execution), 서비스 거부(denial-oof-service)등의 공격으로 이어질수 있다 가젯 메서드 역직렬화 과정에서 호출되어 잠재적으로 위험한 동작을 수행하는 메서드 static byte[] bomb() { Set root = new HashSet(); Set s1 ..

전략패턴이란? 여러 알고리즘을 하나의 추상적인 접근점을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴입니다 예를들어 게임캐릭터와 무기를 구현한다고 했을때 전략패턴을 사용해 보겠습니다 public class GameCharacter { //접근점 private Weapon weapon; public void attack() { //델리게이트 - weapon 객체에 위임한다 weapon.doAttack(); } //교환 가능 public void setWeapon(Weapon weapon) { this.weapon = weapon; } } public class Sword implements Weapon { public void doAttack() { System.out.println("검 공격"); ..

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 = ..
- Today
- Yesterday
- gslb
- Serializable
- Serialize
- jdk11
- Concurrecy
- 메인보드#asrock b650m #조립pc #후기이벤트
- reactive stream
- object
- Java
- observable
- strategy
- in-memory
- Design Pattern
- jvm
- template method
- reactive
- Observer Pattern
- Spring
- 디자인패턴
- iterable
- JMeter
- exception
- concurrency
- Redis
- LAMBDA
- template
- 부하테스트
- nosql
- 영속성
- Effective JAVA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |