post-thumbnail

카운팅 정렬/계수 정렬(Counting Sort)

카운팅 정렬은 수 많은 정렬 알고리즘 중 시간복잡도가 O(n)으로 엄청난 성능을 보여주는 알고리즘이다.

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

퀵 정렬(Quick Sort)

하나의 리스트를 피벗(pivot)을 기준으로 하나는 pivot보다 작은 값들의 부분리스트, 하나는 pivot보다 큰 값들의 부분리스트로 정렬한 뒤, 각 부분리스트에 대해 위 방식대로 재귀적으로 수행하여 정렬하는 방법분할 정복(Divide and Conqure)퀵 정렬은

2023년 3월 6일
·
0개의 댓글
·
post-thumbnail

허프만 알고리즘

압축 단위마다 문자의 출현 빈도를 조사하여 빈도가 높은 순서대로 비트 수가 적은 부호를 부여함으로써 데이터를 압축하는 방식간단히 말해서 많이 사용된 문자는 더 적은 비트로 나타내고 적게 사용된 문자는 더 많은 비트를 사용하여 효율적으로 문자열을 나타내는 방식문자 압축

2023년 2월 7일
·
0개의 댓글
·
post-thumbnail

Upper Bound(상계), Lower Bound(하계)

원하는 값을 찾지 못했을 때 -1을 반환하는 이진 탐색과 달리 원하는 값을 초과하는 첫 번째 위치, 원하는 값 이상의 첫 번째 위치를 반환한다.이렇게 -1이 아닌 어떻게든 적절한 위치를 찾아낸다는 특성 덕분에 주로 특정 값을 배열의 어느 위치에 넣어야 되는지를 탐색할

2023년 1월 25일
·
0개의 댓글
·
post-thumbnail

효율적인 약수 개수 구하기

일반적인 방법개선된 알고리즘한 개의 약수를 찾는 순간, 반대편 약수의 존재도 보장된 것이므로 체킹 횟수를 대폭 줄일 수 있다.

2023년 1월 13일
·
0개의 댓글
·
post-thumbnail

에라토스테네스의 체

특정 자연수 범위에서 소수 숫자를 판별하기 위한 대표적인 알고리즘2부터 N까지 모든 자연수를 나열N이하 범위에서 2부터 자기 자신을 제외한 배수들을 제거위 과정은 N의 제곱근까지 반복반복 과정이 끝난 후 남은 수들이 소수ref : https://velog.io

2022년 12월 19일
·
0개의 댓글
·
post-thumbnail

유클리드 호제법

자연수 a,b에 대해서 a와 b를 나눈 나머지를 r이라 한다면, a,b의 최대 공약수와 b,r의 최대 공약수는 같다.최대 공약수(GCD) 찾기 192와 72의 최대 공약수를 찾는 경우 192/72는 약분하면 8/3이 됨 192 % 72 = 4872 % 48 = 2448

2022년 12월 15일
·
0개의 댓글
·
post-thumbnail

서블릿(Setvlet)

클라이언트의 요청을 받아 검증 및 처리하고, 그 결과를 반환하는 서블릿 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다. SpringMVC에서 Controller로 이용됩니다.먼저, WAS가 클라이언트로부터 HTTP 요청을 받아 서블릿 컨테이너에 넘깁니다. 컨

2022년 11월 24일
·
0개의 댓글
·
post-thumbnail

브라우저 동작 방법

브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것입니다. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있습니다. 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해짐브라우저는

2022년 11월 21일
·
0개의 댓글
·
post-thumbnail

동적 계획법(DP)

문제를 각각의 작은 문제로 나누어 해결한 결과를 저장해뒀다가 나중에 큰 문제의 결과와 합하여 풀이하는 알고리즘입니다. 풀이 방법에는 상향식 타뷸레이션과 하향식 메모이제이션이 있습니다. 타뷸레이션은 작은 문제의 정답을 이용하여 큰 문제를 해결하는 식이고, 메모이제이션은

2022년 10월 31일
·
0개의 댓글
·
post-thumbnail

비선형 자료구조

최솟값 또는 최댓값을 빠르게 찾아내기 위해 완전이진트리 형태로 만들어진 자료구조입니다.마지막 노드를 제외한 모든 노드가 채워져있으면서 리프 노드가 왼쪽부터 채워진 노드를 말합니다. 여기서 추가로 리프 노드 외 모든 노드가 2개의 자식 노드를 갖게 되면 포화 이진 트리(

2022년 10월 31일
·
0개의 댓글
·
post-thumbnail

선형 자료구조

크기를 지정하고 해당 크기만큼의 연속된 메모리 공간을 할당받는 작업을 수행하는 자료형을 말합니다.장점메모리에 연속적으로 할당되어 있어 어느 위치에서나 O(1)에 조회가 가능(검색 성능 우수)인덱스를 이용하여 무작위 접근 가능(순차 접근을 하지 않아도 됨)순차 접근을 하

2022년 10월 31일
·
0개의 댓글
·
post-thumbnail

24시간 365일 중단 없는 서비스 만들기

무중단 배포 방식AWS에서 블루 그린(Blue-Green) 무중단 배포도커를 이용한 웹서비스 무중단 배포이외에도 L4 스위치를 이용한 무중단 배포 방법도 있지만, L4가 워낙 고가의 장비이다 보니 대형 인터넷 기업 외에는 쓸 일이 거의 없다.이번 챕터에서 진행할 방법은

2022년 7월 23일
·
0개의 댓글
·
post-thumbnail

코드가 푸시되면 자동으로 배포하기(Travis CI 배포 자동화) - 루타블의 개발일기

코드 버전 관리를 하는 VCS 시스템(Git, SVN 등) 에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정을 CI(Continuous Integration - 지속적 통합)라고 하며, 이 빌드 결과를 자동으로 운영 서버에 무중단

2022년 7월 21일
·
0개의 댓글
·
post-thumbnail

EC2 서버에 프로젝트 배포하기 - 루타블의 개발일기

🔧 먼저 깃허브에서 코드를 받아올 수 있게 EC2에 깃을 설치하겠다.sudo yum install git🔧 설치가 완료되면 다음 명령어로 설치 상태를 확인git --version🔧 git이 성공적으로 설치되면 git clone으로 프로젝트를 저장할 디렉토리를 생성

2022년 7월 20일
·
0개의 댓글
·
post-thumbnail

AWS에 DB 환경 만들기(AWS RDS) - 루타블의 개발일기

AWS에서 지원하는 클라우드 기반 관계형 DB다. 하드웨어 프로비저닝, DB 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스다. 추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로

2022년 7월 19일
·
0개의 댓글
·
post-thumbnail

AWS 서버 환경 만들기(AWS EC2) - 루타블의 개발일기

🌱 클라우드 서비스의 필요성 외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수 24시간 작동하는 서버 집에서 PC를 24시간 구동 호스팅 서비스(Cafe24, 코리아호스팅 등) 클라우드 서비스(AWS, AZURE,

2022년 7월 16일
·
0개의 댓글
·
post-thumbnail

스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현 - 루타블의 개발일기

많은 서비스에서 소셜 로그인을 이용하는 이유는 다양한 로그인 관련 기능을 구글, 네이버, 페이스북 등에 맡기고 개발에 집중할 수 있기 때문이다.OAuth2 연동 방법이 2.0에서 크게 변경되었지만 인터넷 자료들을 보면 설정 방법에 크게 차이가 없는 경우를 자주 본다.

2022년 7월 9일
·
0개의 댓글
·
post-thumbnail

머스테치로 화면 구성 - 루타블의 개발일기

일반적으로 웹 개발에 있어 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 말한다.동작하는 영역에서 차이📢 서버 템플릿 엔진서버에서 구동되며 화면 생성은 서버에서 Java코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

스프링 부트 & JPA - 루타블의 개발일기

📢 SQL MapperSQL 쿼리를 매핑하는 데이터 객체화 기술장점SQL 응답 결과를 객체로 편리하게 변환할 수 있다.JDBC 반복 코드를 제거할 수 있다.난이도가 낮은 편이다.단점개발자가 SQL을 직접 작성해야 함ex) MyBatis, Spring JdbcTempl

2022년 7월 5일
·
0개의 댓글
·