반응형

분류 전체보기 320

[기타] XML이란?

XML(eXtensible Markup Language)는 데이터를 구조화하고 저장하거나 전송하기 위해 설계된 마크업 언어입니다.현재는 Rest API + JSON 조합으로 보편화 되었지만, 과거에는 SOAP + XML 조합으로 많이 사용하였음 핵심 특징태그 기반 : 홍길동 직접 태그를 정의확장성 : 정해진 태그가 아니라 필요한 대로 새로운 태그를 만들 수 있음사람과 기계 모두 읽기 쉬움 : 사람도 이해할 수 있으면서, 기계도 파싱(해석)이 가능표준화된 규칙 : W3C(World Wide Web Consotium)가 표준을 관리주된 용도서버 간 데이터 교환프로그램 설정 파일문서 저장 포맷 (ex. MS Word, Excel 내부 파일)웹서비스 데이터 포맷 (특히 과거 SOAP 기반 통신) XML 코드 예..

[Spring] REST API가 무엇인가?

REST 아키텍처 스타일을 기반으로, HTTP 프로토콜을 이용하여 서버와 클라이언트 간에 데이터를 주고받기 위해 설계된 인터페이스 구성 요소자원(Resource) : 서버에 존재하는 데이터를 의미하며, 각각 고유한 URL로 식별된다.행위(HTTP Method) : 클라이언트가 자원에 대해 수행하려는 동작을 정의GET, POST, PUT, DELETE표현(Representation) : 자원의 상태를 전달하는 형태로, 주로 JSON, XML 등의 포맷으로 표현 REST API의 기본 원칙Uniform Interface (일관된 인터페이스)URL, HTTP 메소드 사용 규칙이 일관되어야 함Stateless (무상태성)서버는 각 요청 간에 클라이언트 상태를 저장하지 않습니다. (모두 요청은 독립적)Client..

IT 정보/Spring 2025.04.29

[프로그래머스] 389481 : 봉인된주문 [JAVA] Lv.3

문제 풀이 설명 (summary)금지된 목록을 모두 숫자로 변환하고 오름차순으로 정렬최대 금지 항목이 30만개 이므로 이분 탐색으로 정렬하여 현재 n값보다 작은 갯수가 몇개인지 파악하여 추가금지항목 갯수만큼 n에 추가하고, 추가값도 반복해서 카운팅하고최종 카운트를 문자열로 바꿔서 출력한다. 문제 풀이 접근법26진법을 사용한다. 알파벳 하나하나 숫자로 해시맵에 저장문자열을 숫자로 변환하는 메서드 활용숫자를 문자열로 변환하는 메서드 활용 풀이 코드 (Code)import java.util.Arrays;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) { ..

[매일메일] HTTPS란 무엇인가?

[매일메일] HTTPS란 무엇인가? HTTPS,HTTP 우리가 URL 링크를 복사하면 따라 나오는 문자입니다. 이는 클라이언트와 서버 간 통신을 위한 통신 규약입니다. (규약 = 약속)HTTP와 HTTPS 의 차이점은 HTTP는 암호화되지 않은 평문 데이터를 전송하기 때문에 제3자가 정보를 조회할 수 있다는 위험이 있어서 HTTPS가 등장했습니다. 따라서 우리가 HTTP 주소로 링크를 이동하게되면 안전하지 않은 링크라고 경고가 뜨는걸 알 수 있습니다. HTTPS 적용하는 방법인증된 기관(Certificate Authorite, CA)에게 인증서를 받을 요청서버 도메인 (www.naver.com)서버의 공개키 (Public Key)CA는 다음을 수행해당 정보를 검토하고 인증서를 생성인증서에 전자서명을 추가..

[프로그래머스] 17680 : 캐시 [JAVA] Lv.2

[프로그래머스] 17680 : 캐시 [JAVA] Lv.2 1. 준비대소문자 구분하지 않으므로, 주어진값을 모두 소문자로 변경한 후 계산해야 한다. 그리고 casheSize가 0인 경우에는 하나도 저장할 수 없으니 cities 크기만큼 * 5 해주면 된다. 2. 캐시 입출력이 문제는 deque 를 사용하면 쉽게 풀 수 있다.ArrayDeque cache = new ArrayDeque();cache.contains(city) 문제 풀이 설명 (summary)Deque를 활용하여 cities 값을 하나씩 검증하여 추가한다.같다면, 카운트를 + 1 해준다. 이전의 같은 값을 삭제하고 새로 city값을 추가해준다같지 않다면, 카운트를 +5 하고 가장 먼저 추가한 값을 삭제하고, city값을 추가해준다. 만약에..

[프로그래머스] 12927 : 야근지수 [JAVA] Lv.3

[프로그래머스] 12927 : 야근지수 [JAVA] Lv.3 어려워 보이지만, 우선순위 큐만 사용해본 적이 있다면, 매우 쉽게 풀 수 있다. 우선은 내림차순으로 정렬해주는것이 가장중요하다. 왜냐하면 가진 업무처리 시간을 최적으로 활용하기 위해서는 남은 업무량을 큰것부터 없애는것이 가장 중요하다. 따라서 우선순위 큐를 사용하여, 모든 업무량을 넣어두고 큰 순서대로 업무를 처리하면 최종적으로 남는 업무를 모두 꺼내어 계산하면 끝난다. 문제 풀이 설명 (summary)우선순위 큐(PriorityQueue)(pq)를 사용하여, 업무량이 큰것부터 순차적으로 처리할 수 있도록 내림차순으로 정렬한다.작업시간만큼 우선순위 큐에서 큰것부터 꺼내어 count-1 해서 다시 pq에 넣어준다최종적으로 남은 pq를 모두 꺼..

[프로그래머스] 42884 : 단속카메라 [JAVA] Lv.3

[프로그래머스] 42884 : 단속카메라 [JAVA] Lv.3 1단계 : 정렬하기단속카메라 문제는 정렬하는게 가장 포인트다. 진입 지점으로 오름차순하면서 진입지점이 동일하다면, 진출 지점으로 오름차순을 하는 것이다. 예를 들어 {{2,5}, {2,4}, {3,3}, {5,8}} 가 있다고 가정하자. 우선 가장 작은 {2,5},{2,4}} 를 정렬하게 될텐데 진입 지점이 동일하므로, 진출지점으로 정렬하면 {2,4}{2,5} 가 된다. 나머지는 진입지점순서대로 정렬하면 {2,4}{2,5}{3,3}{5,8} 이 된다. 2단계 : 카메라 위치 지정하고 옮기기첫 카메라 위치는 현재 인덱스의 진출지점으로 초기화한다.첫 인덱스 진출지점은 4이므로, 현재 카메라 위치는 4가 된다.다음 인덱스 {2,5} = 진입시점 2..

[프로그래머스] 43238 : 입국심사 [JAVA] Lv.3

[프로그래머스] 43238 : 입국심사 [JAVA] Lv.3 여러번 풀어보았던 문제인데, 다시 풀게 되었을 때 막막했다. 직관적으로 접근하면 문제를 해석하려고 하면 방법이 점점 복잡해지기만 할 뿐이었다. 그래서 느낀점은 문제를 읽고서 접근방식을 잘 선택하는게 가장 우선되어야 할 문제라고 생각했다.문제에서 순차적으로 진행되지 않고 주어진 시간내에 가능한 빨리 끝나도록 하는것이 목적이기 때문에 이번 문제는 각각 심사관들은 서로 연관성이 전혀 없다. 단 총 시간이라는 조건만 동일 할 뿐이다. 주어진 시간에 몇명을 심사할 수 있는지 각각 심사관별로 계산해서 총합이 주어진 시간에 심사할 수 있는 모든 사람의 수가 결정된다. 위에 글을 보고 풀 수 있다면, 가장 좋은 방법이 될 것이고 이해하기 어렵다면, 아래에 있..

[Spring] 스프링에서 주기적 일정(Scheduler) 설정하고 실행하는 방법

Spring Scheduler로 정기 작업 자동화하기 Scheduler란?스케줄러는 일정한 시간 간격이나 특정 시간에 맞추어 자동으로 실행되는 작업(태스크)을 의미합니다. Java 기반의 Spring 프레임워크에서는 @Scheduled 어노테이션을 사용하여 스케줄러를 간편하게 구현할 수 있습니다. 구성 방법@EnableScheduling@Component@Scheduled(cron = "0 0 1 * * *") // 매일 오전 1시에 실행* 위 3가지를 설정하면 스케줄링이 실행된다. 아래 스냅샷을 통해 예시를 보세요 1. 스케쥴링 활성화// Scheduling 기능을 사용하기 위해서는 애플리케이션 진입점 또는// 설정 클래스에 @EnableScheduling을 선언해야 합니다.@SpringBootApp..

IT 정보/Spring 2025.04.16

[Docker] 도커의 기본 개념 및 용어 설명 #1

Docker 장점 이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다. 도커 (Docker)란?컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다. 컨테이너 (Container)란?Docker에서 컨테이너(Container)는 하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 프로그램을 별도로 설치할 수 있게 만든 개념이다. 컴퓨터 안에 작은 컴퓨터라고 부를 수 있고 이를 컨테이너라고 부른다. 컨테이너를 포..

IT 정보/docker 2025.04.16
반응형