목록java (78)
코딩마을방범대
Autowired를 지양하는 이유 객체지향에서 피해야할 것은 지나치게 큰 의존도를 만드는 것 spring 초기 버전: xml파일에 Bean 명세를 적어 사용 ↓ ApplicationConfig에 java코드로 Annotation을 사용 ↓ @Autowired의 등장으로 명세를 적어줘야하는 일을 하지 않아도 됨 의존성을 주입하는 방법 1. @Autowired 사용 순환참조가 되는 경우 빌드과정에서는 알 수 없음 final 사용 불가능 순환참조의 문제점 컴포넌트 간의 명확한 경계가 사라지고 연쇄적으로 변경에 의한 영향이 발생 @Autowired private User user; 2. Setter 사용 set하지 않을 경우 NullPointException 발생 private User user; @Autowi..
스케쥴러란? 일정 시간마다 코드를 실행시킬 수 있음 스레드(sleep)을 이용하면 제대로 관리하지 못할 경우 exception이 날 수 있음 사용법 1. 메인 클래스에 어노테이션 선언 @SpringBootApplication @EnableAsync @EnableScheduling public class Task4SchedulerApplication { 2. 스케쥴링 기능을 사용할 메소드 Scheduled, Async 어노테이션을 추가(사용할 클래스는 bean이여야함) // 타임존은 제외 가능 @Async @Scheduled(cron="0/60 * * * * ?", zone="Asia/Seoul") public void test() { System.out.println("1분마다 실행"); } 💡 Asyn..
JAVA를 이용한 JSON 데이터 파싱 방법 json 데이터를 활용할 일이 매우 많은데, API에서는 객체로 바로 받아올 수 있지만 json 문자열로 받아와서 사용해야 하는 경우도 많다. 이럴 경우 json 데이터를 여러 방면으로 사용할 수 있는데, 아래에서 확인해보자! JSON 객체와 문자열 우선 json 객체를 사용하려면 의존성 추가가 필요하다 build.gradle // https://mvnrepository.com/artifact/org.json/json implementation group: 'org.json', name: 'json', version: '20230227' 문자열 -> JSON 객체 ( str to json ) Object 로 가져오기 JSONObject jObject = new..
enum이란 한정된 개수의 값들을 하나로 묶어 사용 가능한 자바 파일 enum 생성 enum 값들 세팅 ( 값들 사이엔 콤마[,]를 이용해 연결하고, 마지막 값엔 세미콜론[;]으로 닫기 ) enum 값의 순서대로 전역 변수 선언 @Getter @AllArgsConstructor public enum Num { ONE("one", 10), TWO("two", 20); private final String name; private final int value; } enum 호출 Num.ONE Enum의 메소드 values() enum의 모든 값들을 배열로 만들어 리턴해줌 for (Num num : Num.values()) { System.out.println(Num.getName()); // one // t..

Builder란 builder() 함수를 통해 객체를 생성할 수 있는 빌더를 얻고, 값 세팅 후 build()를 통해 빌더를 작동 시켜 객체를 생성 생성자의 단점 매개변수가 많아지면 코드를 읽기 어렵고, 어떤 순서로 매개변수 넣어야하는지 헷갈림 하나의 객체를 만들기 위해 메소드 여러개를 호출해야 함 객체가 완전히 생성되기 전까지는 일관성(consisitency)이 무너진 상태(미완성) ⇒ 디버깅 어려움 객체에 필요 없는 필드가 있는 경우 더미 값을 넣어주거나 해당 필드가 없는 생성자를 만들어주어야 함 User user = new User("dbkim", 25, "female"); Builder의 장점 1. 필요한 데이터만 설정할 수 있음 객체에 필요하지 않은 필드의 경우 생략 가능함 private Sti..
😀 IT 용어 참고 사이트 😀 https://velog.io/@tlsgks48/IT%EC%9A%A9%EC%96%B4-IT%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%97%85%EB%AC%B4-%EC%9A%A9%EC%96%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0 https://unit-15.tistory.com/121 ⛓ 블록체인이란 데이터 분산 처리 기술(네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산, 저장하는 기술) '블록'은 개인과 개인의 거래(P2P)의 데이터가 기록되는 장부, 데이터는 16진수 숫자로 암호(암호 해시)화됨 블록들은 형성된 후 시간의 흐름에 따라 순차적으로 연결된 '사슬(체인)'의 구조를 가지게 됨 기존 방식과 블록체..