[Java] 문자열 뒤집기
문제설명 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항 my_string은 숫자와 알파벳으로만 이루어져 있습니다. 1 ≤ my_string의 길이 ≤ 1,000 0 ≤ s ≤ e
문제설명 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항 my_string은 숫자와 알파벳으로만 이루어져 있습니다. 1 ≤ my_string의 길이 ≤ 1,000 0 ≤ s ≤ e
웹 애플리케이션 및 서비스에서 보안은 매우 중요한 요소입니다. 사용자 인증과 권한 부여는 이러한 보안을 구축하는 데 있어서 핵심적인 부분인데요. 그 중에서도 JWT(Jason Web Token)와 OAuth는 널리 사용되는 두 가지 웹 보안 프로토콜입니다. 이번 글에서는 JWT와 OAuth의 개념, 구조 그리고 주요 차이점에 대해 자세히 알아보겠습니다! JWT란? Jason Web Token으로 클라이언트와 서버 간의 인증을 위한 토큰 기반 방식 JWT의 생김새 헤더(Header) : 토큰의 타입과 해싱 알고리즘을 정의 내용(payload) : 클레임(Claim) 정보가 포함. 클레임(Claim) 은 사용자, 권한, 유효기간 등의 정보를 담음(등록된, 공개, 비공개 클레임) 서명(signature) : ..
문제설명 문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 빈 문자열은 반환할 배열에 넣지 않습니다. 제한사항 1 ≤ myString ≤ 100,000 myString은 알파벳 소문자로 이루어진 문자열입니다. 입출력 예 입출력 예 설명 입출력 예 #1 myString을 "x"를 기준으로 자른 배열은 ["a","b","c","d"]이며, 이 배열은 이미 사전순으로 정렬된 상태입니다. 따라서 해당 배열을 return 합니다. 입출력 예 #2 myString을 "x"를 기준으로 자른 배열은 ["d","cc","bbb","aaaa"]이며, 이 배열을 사전순으로 정렬하면 ["aaaa"..
이번에 이 책을 통해 순서대로 백엔드가 개발자가 되기 위한 기초 지식을 쌓을 수 있어서 매우 유용하였습니다. 평소 기초에 대해 중요시 생각하는 편인데 이 책을 읽고, 기초를 잘 잡을 수 있게 된 것 같아서 좋았습니다. 처음에 책을 읽을 때는 모르는 부분이 많아서 헷갈렸는데 책을 읽으며 필기하고 학습일지를 작성하니 책 내용이 머릿속에 쏙쏙 들어오게 되었습니다.
1. 도커의 개념 2013년에 출시된 도커(Docker)는 컨테이너 기술을 이용해 웹 애플리케이션을 배포하고 실행하는 오픈 소스 플랫폼으로, 컨테이너의 기술의 대중화를 이끄는 핵심 기술로 자리 잡았습니다. 도커는 웹 애플리케이션을 실행한는 데 필요한 모든 환경을 패키징해 컨테이너 이미지를 만들고, 이 이미지를 이용해 컨테이너를 생성합니다. 예를 들어 자바와 스프링 부트로 개발한 웹 애플리케이션이 있다면, 이 웹 애플리케이션을 만들고 실행하는 데 필요한 요소(JDK, JAR 파일 등)을 포함해 하나의 이미지로 만든 후, 이 이미지를 활용해 컨테이너를 생성하고 해당 컨테이너에서 웹 애플리케이션을 실행합니다. 2. 도커의 장단점 2-1. 장점 컨테이너 간 통신을 위한 네트워크 구성 기능 제공 여러 컨테이너를 ..
1. 가상화의 개념 가상화란 하나의 물리적인 서버를 여러 개의 가상 서버로 분할해 사용하는 기술입니다. 가상화 기술이 등장하기 전의 전통적인 서버 구조에서는 하나의 서버로 여러 웹 애플리케이션을 실행하면서 충돌하는 문제가 발생했습니다. 왜냐하면 여러 웹 애플리케이션이 각기 다른 운영체제나 라이브러리를 사용했기 때문입니다. 그러나 가상화 기술이 도입되면서 하나의 서버로 다수의 웹 애플리케이션을 운영할 수 있게 됐습니다. 2. 가상화의 종류 가상화는 크게 1. 개발 환경 가상화 2. 머신 가상화 3. 운영체제 가상화 로 나뉩니다. 2-1. 개발 환경 가상화 ex) 아나콘다(anaconda) 개발자가 웹 애플리케이션을 개발할 때 필요한 환경을 가상으로 구축하게 하는 기술입니다. 이 방식의 경우 한 컴퓨터에서 ..
DBMS는 데이터를 효율적으로 저장,관리, 조회하는 프로그램으로 크게 RDBMS와 NoSQL로 나뉘게 됩니다. RDBMS는 데이터 간의 관계와 효율적인 관리에 중점을 두었고, NoSql은 분산된 대량의 데이터를 저장하고 조회하는데 특화되어 있습니다. 이제 이 두가지 DBMS의 장단점과 용도에 대해 자세히 살펴보도록 하겠습니다. 1. RDBMS RDBMS(Relational DataBase Management System)는 관계형 데이터 베이스(RDB, Relational DataBase)를 관리하는 시스템입니다. 모든 데이터를 테이블 단위로 저장하며, 각 테이블은 속성과 튜플로 구성됩니다. 관계형 데이터 베이스에서는 현실 세계의 복잡한 사건이나 사물의 특성을 관계(relationship)으로 표현하며,..
Ruby의 select 메소드 활용하기 Ruby의 select 메소드는 배열에서 특정 조건을 만족하는 요소들을 선택하여 새로운 배열을 생성하는데요. 이 메소드는 블록을 사용하여 각 요소에 대한 조건을 정의하며, 조건을 만족하는 요소만이 새로운 배열에 포함됩니다. filter와 비슷한 느낌이 나는 메소드 같습니다. 다음은 select 메소드를 이용한 예제를 알아보도록 하겠습니다! 기본 문법 result = array.select { |element| condition } array: 조건을 검사할 배열 element: 배열의 각 요소 condition: 블록 내에서 정의된 조건 예제 # 1부터 10까지의 숫자로 이루어진 배열 numbers = (1..10).to_a # 짝수만을 선택하는 조건으로 selec..