목록분류 전체보기 (220)
코딩마을방범대
스케쥴러란? 일정 시간마다 코드를 실행시킬 수 있음 스레드(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..
부인방지(non-repudiation)란? 데이터의 송수신이나 처리가 실행된 후에 그 사실을 사후에 증명함으로써 사실 부인을 방지하는 보안 기술 암호화 방식에 따른 관리 방법 대칭형 암호화 방식 신뢰할 수 있는 제3 신뢰 기관(TTP)을 통해 부인 방지 기능을 실현 비대칭형 암호화 방식 디지털 서명 기술을 응용 public, private key를 통해 certification key를 발급 받음 검증 시 user key + certication key + 원장정보 + signature key 를 통해 검증함 signature key = 원장정보 + private key API(Application Programming Interface) 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 ..
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..
MyBatis란 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크 SQL쿼리들을 한 구성파일(xml)에 구성하여 프로그램 코드와 SQL문을 분리할 수 있음 데이터소스(DataSource) 기능과 트랜잭션 처리 기능을 제공 특징 SQL문을 그대로 사용하여 커스터마이징한 sql문 구성이 가능함 비슷한 쿼리는 여러 번 사용할 수 밖에 없음 주요 컴포넌트 MyBatis 설정파일 고정된 환경정보를 설정(데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등) (예:SqlMapConfig.xml) SqlSessionFactoryBuilder MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성 SqlSessionFac..
HDD(Hard Disk Drive) 컴퓨터의 주요 저장장치 내부에 플래터(디스크)를 여러 개 두고 데이터를 저장하는 용도로 쓰임 장점 가격이 저렴하고 장기 보존이 가능 넉넉한 저장공간으로 사용가능 단점 속도가 느리며 소비전력이 큼 소음과 발열이 있음 SDD(Solid State Drive & Solid State Disk & Solid Disk Drive) 반도체를 이용하여 데이터를 저장하는 방식 장점 저전력으로 빠르고 소음이 없음 단점 HDD보다 용량 당 가격이 비쌈 DAS / NAS / SAN 스토리지 시스템이란? 단일 디스크로 처리할 수 없는 용량을 저장하기 위해 디스크를 묶어서 논리적으로 사용하는 기술 스토리지 구성이란? 서버와 저장장치를 연결하는 방법 DAS(Direct Attacthed St..
온프레미스와 클라우드 🎈 인프라란? 데이터를 주고받기 위한 물리적 장비 💾 온프레미스(On-premise)란 자체적으로 보유하고 있는 서버에 직접 설치하고 운영하는 방식 하드웨어와 소프트웨어를 각각 구입하고 특정 공간에 직접 인프라 환경을 구성 ☁ 클라우드(Cloud)란 필요한 IT 자원만을 선택해 인터넷을 통해 ‘서비스’ 방식으로 구입해 사용하는 방식 1. 서비스로서의 소프트웨어 SaaS (Software as a Service) 소프트웨어를 웹에서 사용할 수 있는 서비스 (ex: 구글 드라이브, 지메일) 2. 서비스로서의 인프라 IaaS (Infrastructure as a Service) 인터넷을 통해 가상 서버와 데이터 스토리지와 같은 데이터 자원을 빌려 사용할 수 있는 서비스 (ex: AWS) ..