· AWS
벌써 사건이 발생한 지 한 달이라는 시간이 훌쩍 지나가버렸다. 사건은 5월 초, 아침에 일어나면 이메일을 확인하는 습관이 있는 나는 생전 받아 보지 못한 AWS에서 3통의 이메일이 와있었다.. 새벽 3시경 "AWS 고객 서비스에 요청하신 대로 귀하의 계정과 관련된 이메일 주소를 성공적으로 변경했습니다." 엥? 이게 무슨 소리이지 하고, 다른 이메일을 확인하였다. 해당 내용은 더욱 나를 간장 되게 만들었다.. "이 계정 손상으로 인해 사용자 계정(다른 계정 사용자 포함)에 보안 위험이 발생하며, 무단 작업으로 인해 과도한 요금이 부과될 수 있습니다. 과도한 요금으로부터 계정을 보호하기 위해 일부 AWS 서비스를 사용할 수 있는 기능을 일시적으로 제한했습니다. " 식은땀이 나기 시작하였다. 바로 아마존에 로..
· Spring
@SpringBootApplication @SpringBootApplication은 Spring Boot FrameWork에서 주요한 어노테이션 중 하나로, Spring Boot Application을 개발하는 데 사용 됩니다. 해당 어노테이션을 사용하면 Spring Boot는 Application 설정을 자동으로 구성하고, 필요한 Spring Bean 들을 자동으로 검색하여, classpath에 있는 라이브러리들을 기반으로 자동 구성을 활성화합니다. @SpringBootApplication에서는 내부적으로 다음과 같은 일을 수행합니다 @SpringBootConfiguration Spring Boot에서 사용되는 특수한 유형의 @Configuration으로, 설정 클래스를 지정할 수 있습니다. 클래스 내..
· C++
코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 ..
Basic concept for probability(Definition and How to calcultate it) Random variable, Joint probability distribution, Joint probability, Marginalization Conditional probability, Bayes rule, Chain rule, Conditionally independent Bayesian networks Characteristics Model parameters Prediction / Inference inference by enumberation by sampling(BN) by variable elimination Learning Bayesian network를 이해를 위..
그래프(Graph)란? 연결되어 있는 객체 간의 관계를 표현하는 자료구조이다. 그래프 G는 (V, E)로 표시되며 V는 정점 또는 노드라고 불리며, 여러 가지 특성을 가질 수 있는 객체를 의미하고 E는 간선 또는 링크로 정점들 간의 관계를 의미한다. 그래프의 종류 무방향 그래프(undirected graph) 간선을 통해서 양방향으로 갈 수 있다. 방향 그래프(directed graph) 간선을 통해서 한쪽 방향으로만 갈 수 있다. 가중치 그래프(weighted graph) 간선에 비용이나 가중치가 할당된 그래프 그래프(graph)의 용어 인접 정점(adjacent vertex) :하나의 정점에서 간선에 의해 직접 연결된 정점 차수(degree) : 하나의 정점에 연결된 간선의 수 경로(path) : 간..
· Docker
[Docker] 도커 엔진(Docker Engine)에 대해서 - 컴도리돌이회사에서 이제 카프카(kafka), 도커(docker), 엘라스티서치(elk), 등을 도입 얘기가 나오는데, 나는 아무것도 모릅니다. 😓 오늘은 도커 엔진에 대해 포스팅을 해볼 생각입니다. 아는 게 많고 해 봤던comdolidol-i.tistory.com Install Docker Desktop on MacInstall Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.docs.docker.com 이전 포스팅에서 도커 엔진이 어떻게 구성되어..
· Docker
회사에서 이제 카프카(kafka), 도커(docker), 엘라스티서치(elk), 등을 도입 얘기가 나오는데, 나는 아무것도 모릅니다. 😓 오늘은 도커 엔진에 대해 포스팅을 해볼 생각입니다. 아는 게 많고 해 봤던 것이 많은 개발자가 얼른 되고 싶네요 😭😭 도커(Docker)도커는 클라이언트-서버 모델을 구현한 애플리케이션입니다.  도커 엔진은 도커 컴포넌트(Docker Componets)와 서비스를 제공하는 컨테이너를 구축하고 실행하는 기본 핵심 소프트웨어이에요.  Docker Demon, Docker Client, Docker image, Docker Container, Docker Registry로 주요 구성되어 있으며, 개발자가 흔히 도커라고 할 때, 주로 Docker Engjine을 의미합니..
· JAVA
사용자의 요청을 받고, 요청을 전달할 때 저는 대게 다음과 같이 HashMap을 사용합니다😓 @GetMapping("/") public String main(@RequestParam HashMap reqMap) { ... } 물론 위와 같이 사용하는 건 굳이 좋은 방식이 아닙니다. 필요한 값만 정의한 DTO 클래스를 사용하는 것이 일반적으로는 훨씬 더더더 좋죠 😊 하지만 개발하다 보면 필요했던 값이 필요하지 않아 지고, 생각하지 않은 값이 필요하게 되는 상황이 대게 많기 때문에 저는 HashMap을 사용합니다. 😔 (시간이 부족해...) 그런데 이렇게 자주 사용한 HashMap이 사실 어떻게 작용하는지 알지 못합니다. 물론 알지 못해도 지금까지 잘 사용했지만, 그래도 알고 사용하는 것과 무지로 사용하는 ..
· AWS
기존 메인 서버에 사용했던 레디스를, 다른 서버에서 관리하는 로직을 개발하려고 했습니다. 당연히 메인 서버에서 설정한 레디스 설정을 그대로 사용하여, 필요한 기능을 구축했습니다. 개발 완료 후에 선임 개발자에게 "메인 서버와 같은 동일한 설정을 하면 과연 작동할까요? 작동하지 않을까요? 각각의 이유를 생각하면 좋겠어요."라는 질문을 받았습니다. 🫥🫥 질문은 오늘 포스팅할 "VPC, subnet 및 보안 그룹에 대한 개념을 갖고 있나요?"라는 의도였고, 저는 당당히 몰랐습니다. 😎 그래서 이번 기회가 아니면, 한 동안 다시는 공부하지 않을 저를 알기에,, 😊 하나부터 열까지 내용을 차근차근 적어 내려가면서 스터디를 할 생각이에요. VPC는 아마존에서 제공하는 가상 네트워크 서비스로, 가상 네트워크에서 리소..
· Spring
이전 포스팅에서 Redis 설정하는 방법과 그 안에서 사용한 메서드에 대해서 가볍게 포스팅을 해봤습니다. 이번에는 설정한 CacheManager을 통해서 스프링에서 캐싱을 어떻게 사용하는지 알아보려고 해요 😊 @Cacheable 캐싱은 많은 애플리케이션에서 성능을 향상하는 핵심적인 기술 중 하나이며, 그중에서도 스프링 프레임워크에서는 @Cacheable 어노테이션을 통해 메서드 호출의 결과를 캐싱하는 기능을 제공합니다. 이를 통해 반복적인 계산을 피하고 응답 시간을 줄일 수 있게 됩니다. @Cacheable는 메서드의 특정 인자에 대한 결과 값을 캐시저장소에 저장하고 같은 인자에 대한 결과 값을 메서드를 실행하지 않고 캐싱 저장소에서 가져와 반환을 해줍니다. @Service public class MyS..
Basic concept for probability(Definition and How to calcultate it) Random variable, Joint probability distribution, Joint probability, Marginalization Conditional probability, Bayes rule, Chain rule, Conditionally independent Bayesian networks Characteristics Model parameters Prediction / Inference inference by enumberation by sampling(BN) by variable elimination Learning Bayesian network를 이해를 위..
괄호 검사란? 괄호의 종류로는 대중소([,]), ({,}), ((,))가 있는데 3가지 조건이 성립해야 한다. 조건 1 : 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 같아야 한다. 조건 2 : 동일 타입의 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다. 조건 3 : 서로 다른 타입의 괄호 쌍이 서로를 교차하면 안 된다. 괄호 검사 예시 괄호 검사 알고리즘 문자열에 있는 괄호를 차례대로 조사하면서 왼쪽 괄호를 만나면 스택에 push() 오른쪽 괄호를 만나면 pop() 연산으로 스택의 top에 있는 괄호를 꺼냄 - 꺼낼 수 있는 요소가 없으면 즉, 스택이 비어 있으면 조건 2에 위배 - pop 한 왼쪽 괄호와 짝이 맞지 않으면 조건 3에 위배 마지막 괄호까지를 조사한 후에도 스택에 괄호가 남아 있으면..
Outline 1.Loop and Jump Instructions 2.Call instructions 3.Time delay Loop and Jump Instructions Loop : DJNZ (decrease jump not zero) - Conditional Jump Instructions DJNZ reg, label ->DJNZ는 레지스터의 값을 1 감소한다. 만일 초기 값이 0이면, 그 값을 감소하여 FFH로 만든다. 만일 결과의 레지스터 값이 0이 아니면 프로그램은 상대 주소에 의해 지시되는 주소로 분기한다. 만일 레지스터의 결과 값이 0이면, 제어는 DJNZ 다음의 명령에서 계속된다. MOV A, #0 MOV R2, #4 AGAIN: ADD A, #03 DJNZ R2, AGAIN ; reg:..
· AWS
벌써 사건이 발생한 지 한 달이라는 시간이 훌쩍 지나가버렸다. 사건은 5월 초, 아침에 일어나면 이메일을 확인하는 습관이 있는 나는 생전 받아 보지 못한 AWS에서 3통의 이메일이 와있었다.. 새벽 3시경 "AWS 고객 서비스에 요청하신 대로 귀하의 계정과 관련된 이메일 주소를 성공적으로 변경했습니다." 엥? 이게 무슨 소리이지 하고, 다른 이메일을 확인하였다. 해당 내용은 더욱 나를 간장 되게 만들었다.. "이 계정 손상으로 인해 사용자 계정(다른 계정 사용자 포함)에 보안 위험이 발생하며, 무단 작업으로 인해 과도한 요금이 부과될 수 있습니다. 과도한 요금으로부터 계정을 보호하기 위해 일부 AWS 서비스를 사용할 수 있는 기능을 일시적으로 제한했습니다. " 식은땀이 나기 시작하였다. 바로 아마존에 로..
Outline 1.inside 8051 2.introduction to assembly programming 3.program counter and rom space 4.psw register and flag bits 5.register bank and stack inside 8051 inside 8051 : block diagram -8051 내부에 있는 ROM은 프로그램 코드가 저장되어 있다. -8051 내부에 있는 RAM에는 임시적인 데이터가 저장되어 있다. -8051 내부에 있는 CPU는 RAM에 저장되어 있는 임시적인 데이터(temporary data)를 가져와 ROM에 저장되어 있는 코드를 실행한다. -8051 내부에 있는 입출력 포트(I/O PORTS)는 8bit로 4개의 포트가 존재한다. ..
· AWS
벌써 사건이 발생한 지 한 달이라는 시간이 훌쩍 지나가버렸다. 사건은 5월 초, 아침에 일어나면 이메일을 확인하는 습관이 있는 나는 생전 받아 보지 못한 AWS에서 3통의 이메일이 와있었다.. 새벽 3시경 "AWS 고객 서비스에 요청하신 대로 귀하의 계정과 관련된 이메일 주소를 성공적으로 변경했습니다." 엥? 이게 무슨 소리이지 하고, 다른 이메일을 확인하였다. 해당 내용은 더욱 나를 간장 되게 만들었다.. "이 계정 손상으로 인해 사용자 계정(다른 계정 사용자 포함)에 보안 위험이 발생하며, 무단 작업으로 인해 과도한 요금이 부과될 수 있습니다. 과도한 요금으로부터 계정을 보호하기 위해 일부 AWS 서비스를 사용할 수 있는 기능을 일시적으로 제한했습니다. " 식은땀이 나기 시작하였다. 바로 아마존에 로..
· Spring
@SpringBootApplication @SpringBootApplication은 Spring Boot FrameWork에서 주요한 어노테이션 중 하나로, Spring Boot Application을 개발하는 데 사용 됩니다. 해당 어노테이션을 사용하면 Spring Boot는 Application 설정을 자동으로 구성하고, 필요한 Spring Bean 들을 자동으로 검색하여, classpath에 있는 라이브러리들을 기반으로 자동 구성을 활성화합니다. @SpringBootApplication에서는 내부적으로 다음과 같은 일을 수행합니다 @SpringBootConfiguration Spring Boot에서 사용되는 특수한 유형의 @Configuration으로, 설정 클래스를 지정할 수 있습니다. 클래스 내..
· C++
코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 ..
Basic concept for probability(Definition and How to calcultate it) Random variable, Joint probability distribution, Joint probability, Marginalization Conditional probability, Bayes rule, Chain rule, Conditionally independent Bayesian networks Characteristics Model parameters Prediction / Inference inference by enumberation by sampling(BN) by variable elimination Learning Bayesian network를 이해를 위..
그래프(Graph)란? 연결되어 있는 객체 간의 관계를 표현하는 자료구조이다. 그래프 G는 (V, E)로 표시되며 V는 정점 또는 노드라고 불리며, 여러 가지 특성을 가질 수 있는 객체를 의미하고 E는 간선 또는 링크로 정점들 간의 관계를 의미한다. 그래프의 종류 무방향 그래프(undirected graph) 간선을 통해서 양방향으로 갈 수 있다. 방향 그래프(directed graph) 간선을 통해서 한쪽 방향으로만 갈 수 있다. 가중치 그래프(weighted graph) 간선에 비용이나 가중치가 할당된 그래프 그래프(graph)의 용어 인접 정점(adjacent vertex) :하나의 정점에서 간선에 의해 직접 연결된 정점 차수(degree) : 하나의 정점에 연결된 간선의 수 경로(path) : 간..
· Docker
[Docker] 도커 엔진(Docker Engine)에 대해서 - 컴도리돌이회사에서 이제 카프카(kafka), 도커(docker), 엘라스티서치(elk), 등을 도입 얘기가 나오는데, 나는 아무것도 모릅니다. 😓 오늘은 도커 엔진에 대해 포스팅을 해볼 생각입니다. 아는 게 많고 해 봤던comdolidol-i.tistory.com Install Docker Desktop on MacInstall Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.docs.docker.com 이전 포스팅에서 도커 엔진이 어떻게 구성되어..
여러 방식으로 기능이 작동되는 메서드에서, 또 다른 기능을 추가해야 할 경우 어떻게 해야 할까요? 🤔 코드 형태에 따라 구현 방식이 천지 차이지만, if-else로 분기를 태워서 한 메서드에서 서로 다른 기능을 제공하는 경우가 많이 존재할 겁니다. 간단한 예시로 연산 종류에 따른 다른 동작을 수행시키는 계산기 코드를 다음과 같이 작성해 보았어요. public static int calculate(String operation, int operand1, int operand2) { int result; if (operation.equals("add")) { result = operand1 + operand2; } else if (operation.equals("subtract")) { result = op..
· PostgreSQL
B-treePostgreSQL에서 기본적으로 사용되는 인덱스 구조는 B-tree로 되어 있습니다. B-tree는 데이터베이스에서 빠른 검색 및 정렬된 데이터 액세스를 위해 설계된 효율적인 인덱스 구조입니다. B-tree의 인덱스 행은 페이지로 구성됩니다. 잎 페이지에서는 이러한 행에 데이터를 인덱싱할 키와 테이블 행(TID)에 대한 참조가 포함되며, 내부 페이지에서는 각 행이 인덱스의 자식 페이지를 참조하고 이 페이지의 최소 값을 포함합니다. B-tree의 몇 가지 중요한 특성이 다음과 같이 있습니다. B-tree는 균현이 잡혀 있으며, 각 잎 페이지는 루트로부터 동일한 수의 내부 페이지로 분리됩니다. 따라서 모든 값에 대한 검색은 동일한 시간이 걸립니다.B-tree는 각 페이지(보통 8KB)는 많은(수..
· JAVA
스위치문과 null (switches and null) 전통적으로, switch 문과 표현식은 선택기 표현식이 null을 검증할 때, NullPointerException을 throw 합니다. 따라서 null을 테스트하기 위해 switch 바깥에서 테스트해야 했습니다. // Prior to Java 21 static void testFooBarOld(String s) { if (s == null) { System.out.println("Oops!"); return; } switch (s) { case "Foo", "Bar" -> System.out.println("Great"); default -> System.out.println("Ok"); } } java 21부터는 선택기 표현식의 값이 null일 ..
· PostgreSQL
외래키는 한 테이블의 열이 다른 테이블의 기본 키(primary key)나 후보 키(candidate key)의 값을 참조하는 데 사용하는 제약 조건입니다. 즉 외래키는 데이터 무결성과 관계의 일관성을 유지하는 데 중요한 역할을 합니다. 데이터 무결성(Data Integrity)을 지키기 위해서는 데이터 무결성 제약조건에 대해 알고 있어야 합니다. 무결성 제약조건이란 데이터베이스의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정 등을 제약하기 위한 조건을 뜻합니다. PostgreSql에서는 다양한 방법으로 데이터 무결성을 제어할 수 있으며, 일반적으로 사용되는 제약조건 중에 외래 키(FOREIGN KEY) 제약 조건 이 있습니다. 외래 키 (Foreign Keys) 두 테이블 사이의 관계를 선언함으로..
· Tomcat
외부에서 접근해야 하는 리소스를 webapp 폴더 하위에 있는 resource 파일 안에 저장을 하였습니다. 하지만 WAR 파일을 재배포할 때마다 업로드된 파일들이 사라지면서 재 업로드 해야 하는 경우가 있기에, 외부에서 접근하는 경로를 톰캣 상위 루트 경로로 변경하고, 서버에서도 업로드할 때 해당 루트 경로에 넣으려고 합니다. 1. 서버에서 루트 경로로 파일 업로드 Apache Commons FileUpload 및 서블릿 API 라이브러리 추가합니다. commons-fileupload commons-fileupload 1.4 javax.servlet javax.servlet-api 3.1.0 provided '@WebServlet' 어노테이션은 서블릿을 정의하고 매핑하는 데 사용되는 Java EE 웹 ..
추상 팩토리 디자인 패턴(Abstract Factory Design Pattern)은 객체 생성에 관련된 일련의 인터페이스를 제공하여, 관련 객체들의 생성을 캡슐화하고 클라이언트 코드가 구체적인 클래스의 인스턴스를 직접 생성하는 것을 피하도록 하는 디자인 패턴 중 하나입니다. 이 패턴은 주로 "팩토리"라 불리는 인터페이스를 통해 다양한 종류의 관련 제품을 생성하는 데 사용됩니다. 각각의 팩토리는 특정 제품군에 대해 추상화된 인터페이스를 제공하며, 클라이언트 코드는 이러한 인터페이스를 통해 제품을 생성합니다. 이는 객체 생성 로직을 클라이언트 코드로부터 분리함으로써 시스템의 유연성을 향상하고, 객체 간의 결합도를 낮추어 변경과 확장에 용이하게 만듭니다. 추상 팩토리 패턴 구조(Abstract Factory..
이번에 회사에서 엘라스틱 서치에 대해서 도입을 한다. 하지만 해당 기술에 대해 무지하기 때문에 오늘부터 차근차근 공부할려고 한다. 오늘의 주제는 엘라스틱 스택에 대해 가볍게 내용 정리를 할려고 한다. 엘라스틱 스택(Elastic Stack) 엘라스틱 스택은 일반적인 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장, 분석, 시각화에 필요한 모든 소프트웨어를 갖추고 있다. 비츠와 로그스태시는 데이터를 수집하고 가공하는 역할을 하며, 엘라스틱 서치는 저장하고 분석하는 역할을 담당한다. 마지막으로 키바나는 엘라스틱 서치에 저장된 데이터를 시각화하고 모니터링하는 역할을 수행한다. 엘라스틱 서치(Elastic Search) 엘라스틱 서치는 검색 엔진이지만, 다른 포털 사이트와 다르게 검색 엔진이 내부..
· Network
TCP/ IP (Transmission Control Protocol/ Internet Protocol) 현재의 인터넷에서 사용하는 프로토콜 그룹이며, 상호작용하는 모듈로 이루어진 계층적 프로토콜이다. 각 모듈을 특정한 기능을 제공하며 원래의 TCP/IP 프로토콜은 하드웨어에 설치된 4가지 소프트웨어 계층으로 정의되지만 현재는 5 계층으로 간주한다. 응용 계층(Application Layer) - 프로토콜 : HTTP, SMTP, FTP - PDU : Message OSI 모델의 최상위 계층으로 다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능을 다룬다. 시스템 간의 응용 처리는 상호 간에 통신하면서 일련의 업무를 처리할 수 있도록 필요한 서비스 기능을 제공한다. 이메일, 파일 전송, 웹사이트 조회..
· C++
21944번: 문제 추천 시스템 Version 2 recommend, recommend2, recommend3 명령이 주어질 때마다 문제 번호를 한 줄씩 출력한다. 주어지는 recommend, recommend2, recommend3 명령어의 총 개수는 최소 1개 이상이다. www.acmicpc.net 해당 문제는 저번 포스팅에 언급한 version 1가 유사하게 풀었다. 문제에서 알고리즘 분류, 전체 문제, 난이도의 크기에 따라 문제 번호를 출력을 요구했기에 version 1 문제 보다는 map함수와 multiset 함수를 조금 더 사용하였다. 요번 포스팅은 함수의 쓰임만 언급하겠다.. 1. map group 그룹에서 가장 어려운 문제 또는 쉬운 문제를 출력하는 명령어가 있기에 그룹에 해당한 번호에 대..
outline Classical Problems of Synchronization Bounded-Buffer Problem Readers and Writers Problem Dining-Philosophers Problem Monitors 전통적 동기화 문제들(Classical Problems of Synchronization) 1. 유한 버퍼 문제(Bounded-Buffer Problem), 소비-생산자 문제(Producer-Consumer Problem) 생산자(Producer)는 데이터를 생성하고, 소비자(Consumer)는 데이터를 소비한다. 생산한 데이터는 중간의 버퍼(buffer)라는 저장 공간에 저장해 두고, 소비자는 버퍼에서 필요한 만큼 가져간다. 버퍼의 크기는 유한하다. 버퍼의 공간이 가..
2020/05/21 - [컴퓨터 전공 공부/프로그래밍언어론] - [프로그래밍 언어/Racket] Racket introduction - 컴도리돌이-(1) 2020/05/28 - [컴퓨터 전공 공부/프로그래밍언어론] - [프로그래밍 언어/Racket] Thunks, Laziness, Streams, Memoization -컴도리돌이-(2) 2020/06/04 - [컴퓨터 전공 공부/프로그래밍언어론] - [프로그래밍언어/Racket] Macros - 컴도리돌이-(3) 2020/06/11 - [컴퓨터 전공 공부/프로그래밍언어론] - [프로그래밍 언어/Racket] Datatype-Style Programming with Lists or Structs and more - 컴도리돌이-(4) Racket의 기본 구..
삽입 정렬(Insertion sort) 이란? -삽입을 사용하면서 정렬하는 알고리즘으로 삽입할 값(key)과 값(key)들이 정렬된 리스트가 있을 경우, 정렬된 리스트에 값을 삽입할 때 정렬된 순서를 보존하면서 삽입을 하는 것이 삽입 정렬이다.자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교 하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 삽입 정렬(Insertion sort) 알고리즘 예제 배열에 5,2,4,6,1,3이 저장되어 있다고 가정하고 자료를 오름차순으로 정렬해 보았다. key 2 와 첫 번째 자료인 5를 비교한다. 5가 2보다 더 크므로 5를 2자리에 넣고 2를 5의 자리인 첫 번째에 기억시킨다. key 값 4랑 두 번째 자료인 5랑 비교한다. 5가 ..
행복한쿼콰
컴도리돌이