[JAVA] Fail-Fast 와 Fail-Safe
·
스터디/JAVA
목차 1. Fail-Fast란 Fail-Fast 는 동작중 오류가 발생하면 바로 오류를 알리고, 작업을 중단하는 것입니다. 즉, 문제가 발생하면 곧바로 실행을 중단하고 최대한 빨리 예외를 던집니다. ArrayList, HashMap 등과 같은 java.util 패키지의 콜렉션에 대한 기본 반복자는 Fail-Fast입니다. Fail-Fast Iterators Iterator의 remove() 메소드 이외의 코드로 기존 Collection이 수정되면 Fail-Fast iterators는 예외가 발생합니다.Collections은 modCount라는 내부 카운터를 유지합니다. Collection에서 항목을 추가하거나 제거 할 때마다 이 카운터가 증가합니다.반복 할 때 각 next() 호출에서 modCount의 ..
[Springboot] CircuitBreaker란 뜻 의미
·
스터디/Spring
목차 1. CircuitBreaker란? 말 그대로 누전 차단기 누전 차단기는 전기 회로에서 과부하가 걸리거나 단락으로 인한 피해를 막기 위해 자동으로 회로를 정지시키는 장치 서버에서 외부 API 통신의 장애 전파를 막기 위해 장애를 탐지하면 외부와의 통신을 차단하는 역할 Circuit Breaker가 실행(open)되면 Fail Fast함으로써 외부 서비스에 장애가 나더라도 빠르게 에러를 응답 받고 개발자가 지정한 행위를 리턴받을 수 있다. *fail-fast: 오류가 발생하면 곧바로 오류를 알리고 작업을 중단 장점 연동 서버의 장애로 인해 slow call 발생 시 전체 서버로의 장애 전파 방지 연동 서버 장애 발생 시 call을 차단하여 연동 서버의 장애가 과중되지 않도록 한다. => 장애 발생된 ..
[JAVA] 일급컬렉션 (First Class Collection) 의미 사용방법
·
카테고리 없음
일급컬렉션이란? 일급컬렉션이란 Colletion을 Wrapping 하면서 그 외 다른 멤버 변수가 없는 상태를 일급컬렉션이라고 합니다. 일급컬렉션을 적용하여 Wrapping하게 되면 아래와 같은 장점이 있습니다. 비지니스에 종속적인 자료구조 Collection의 불변성 보장 상태와 행위를 한 곳에 관리 이름이 있는 컬렉션 예를들어 아래의 코드를 일급컬렉션을 적용한다면 List carList = new ArrayList(); for (String carName : carArr) { carList.add(new Car(carName)); } public class Cars { // 멤버 변수가 하나밖에 없다는게 중요 private List carList; public Cars(List carList) { t..
[Springboot] @Scheduled cron 사용하는 방법
·
스터디/Spring
@Scheduled 사용하기 @Scheduled 어노테이션을 사용하기 위해서 @EnableScheduling을 추가해주어야한다. @EnableScheduling public class TaskBatchApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(TaskBatchApplication.class); springApplication.addListeners(new ApplicationPidFileWriter()); springApplication.run(args); } } SpringbootApplication 위에 @EnableScheduling 어노..
[MySQL] TEXT Column cannot set default value
·
스터디/Database
text 타입을 가지는 컬럼의 default 값을 설정하려고 할 때 "TEXT Column cannot set default value" 이라는 에러가 발생하여 그 원인을 찾아보았습니다! TEXT 컬럼 default value 설정 CREATE TABLE `test_table` ( `col1` INT(11) NOT NULL AUTO_INCREMENT, `col2` TEXT, `col3` INT(11) DEFAULT NULL, `col4` TINYINT(1) DEFAULT '0', PRIMARY KEY (`col1`) ); 먼저 위와 같은 쿼리로 test_table을 생성합니다. ALTER TABLE `table1` change `col2` `col2` text default ''; col2 컬럼의 디폴트..
[JAVA] Collections.emptyList() 와 Lists.newArrayList()
·
스터디/JAVA
null을 반환하는 것은 위험하니 빈 empty List를 반환하는게 안전합니다. empty List를 반환하기위해 사용할 수 있는 코드는 아래와 같이 두 가지 선택이있는데요, Collections의 emptyList 와 Lists의 newArrayList는 무슨차이가 있을까요? Collections.emptyList() public static final List emptyList() { return (List) EMPTY_LIST; } Collections.emptyList() 는 static 으로 이미 만들어진 객체입니다. 따라서 cpu와 메모리에 추가 비용이 발생하지 않습니다. Collections.emptyList() 은 final 로 불변 객체를 리턴합니다. 따라서 객체 값을 받아 변경하는 경..