구조체란? 구조체는 C에서 사용되는 파생 자료형 중 가장 일반적이고 많이 사용되는 자료형이다. 파생 자료형이란 기본 자료형인 char, int, double에서 파생된 것으로 배열, 구조체, 공용체, 포인터 등을 들 수 있다. 동일한 자료형을 묶어서 사용하는 배열과 다르게 구조체는 다른 자료형을 하나로 묶어서 표현할 수 있다. 예를 들어 학생을 하나의 종류로 나타낸다고 할 때 다음과 같이 묶어서 나타낼 수 있다. int number; // 학번 char name[10]; // 이름 double grade; // 학점 구조체 선언 구조체는 struct 키워드를 사용해 다음과 같은 형식으로 정의된다. 구조체를 선언하는 것도 하나의 문장에 해당하기 때문에 구조체 선언의 마지막에 세미콜론을 붙여줘야 한다. st..
Study
Data Binding 클라이언트가 서버에게 데이터를 전달했을 때, 서버가 전달된 데이터를 바인딩하는 것을 데이터 바인딩이라고 한다. @RequestParam 사용 @RequestParam 어노테이션을 사용하면 요청 파라미터를 메소드 파라미터에 바인딩 해준다. @RequestMapping(value="/docreate", method=RequestMethod.POST) public String doCreate(@RequestParam("name") String name, @RequestParam("email") String email, Model model) { Offer offer = new Offer(); offer.setName(name); offer.setEmail(email); } Spring ..
리전(Region)리전은 AWS의 데이터센터를 클러스터링하는 물리적인 장소이다. 리전 안에는 가용 영역이 여러 개 존재한다. 2023년 11월 2일 기준 AWS에서는 32개의 리전을 보유하고 있다. 리전이 여러 곳에 위치하고 있는 이유리전이 여러 곳에 위치하고 있는 이유는 네트워크 속도 때문이다. 멀리 떨어진 서버에 접속하기 위해서는 많은 라우터를 경유해야 하므로 속도가 느려질 수 밖에 없다. 따라서 주요 지역에 리전을 놓고, 가까운 리전에 접속해 빠른 속도를 낼 수 있게 한다. 또한, 여러 상황에 대비해 여러 곳에 두기도 한다. 어느 한 곳의 리전이 지진과 화재 같은 자연 재해로 인해 사용할 수 없게 되더라도, 다른 리전에 데이터가 백업이 되어있다면 정상적으로 서비스를 제공할 수 있다. 가용 영역(Av..
목차를 클릭해서 이동해보세요^⏝^ 정렬 일반적으로 정렬시켜야 할 대상을 레코드라고 한다. 레코드는 다시 필드라고 하는 단위로 나누어진다. 여러 필드 중에서 특별히 레코드를 식별해주는 역할을 하는 필드를 키라고 한다. 정렬이란 결국 레코드들을 키 값의 순서로 재배열 하는 것이다. 정렬 알고리즘은 크게 2가지로 나눌 수 있다. 자료의 개수가 적다면 단순한 정렬 방법을 사용해도 괜찮지만, 자료의 개수가 일정 개수를 넘어가면 반드시 효율적인 알고리즘을 사용해야 한다. 단순하지만 비효율적인 방법: 삽입 정렬, 선택 정렬, 버블 정렬 등 복잡하지만 효율적인 방법: 퀵 정렬, 히프 정렬, 합병 정렬, 기수 정렬 등 정렬 알고리즘은 내부 정렬(internal sorting)과 외부 정렬(external sorting)..
데이터 모델 물리적 혹은 추상적으로 존재하는 현실 세계를 단순화되고 정형화된 형태로 표현하는 하나의 방식 또는 규범이다 실제 데이터가 갖는 특성을 살리면서, 목적에 맞게 관심있는 정보만을 단순화 하여 표현하는 방식이다. 이때, 데이터에 대한 조작이 가능해야 한다. 관계형 데이터 모델(Relational Data Model) 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델이다 실세계의 데이터를 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식이다. 테이블을 릴레이션이라고 부른다. 릴레이션(Relation) 수학적으로 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미한다. 테이블이라고 표현할 수 있다. 이름 = {김짱구, 이철수, 박맹구} 주소 = ..
디지털 전환(DX)AI, ML과 같은 IT 신기술을 활용해서 새로운 사례를 발굴하는 것이 DX의 본질이라고 생각할 수 있지만, 이것은 DX의 극히 일부에 해당하는 내용이다. 영문판 위키디피아에서는 DX를 최신 IT 기술을 사용해서 비즈니스를 근본적으로 혁신하는 운동이라고 설명하고 있다. 컴퓨터는 오랜 시간 동안 인간의 수작업을 지원하는 백오피스로 이용되어 왔지만, DX 이후의 세계에서 IT 시스템은 후방 지원 서비스가 아니다. 즉, IT 시스템은 시장에 상품 및 서비스를 제공하며, 비즈니스 프로세스를 운영하는 기업 활동의 중심이 된다는 것이다. 이러한 혁신을 위해서는 비즈니스 운영 문화가 근본적으로 변화해야 하며, 기존 IT 시스템(인프라와 애플리케이션)도 혁신적으로 변해야 한다. 2025년의 벽'202..
마이크로서비스마이크로서비스란 클라우드 네이티브 컴퓨팅의 핵심이 되는 기술로, 클라우드 네이티브 애플리케이션 개발/운영 아키텍처 스타일이다. 아키텍처 스타일이란?더보기아키텍처란 구성 요소와 구성 요소 간 관계를 표현한 것으로 건축물의 '구조'에 해당한다. 구조는 건축물의 근간을 이루는 것이지만, 그것만으로는 집이나 빌딩을 지을 수 없다. 건축물을 만들기 위한 기법이나 목조, 철근, 콘크리트 등의 재료, 그리고 장식 등이 있어서 집이나 빌딩을 완성할 수 있다. 이처럼 구조를 구체화하기 위한 주변 기술, 기법, 재료 등을 모아서 아키텍처 스타일이라고 한다. 마이크로서비스 아키텍처 (MSA)마이크로서비스 아키텍처의 핵심은 독립적으로 개발 및 실행되는 소프트웨어 컴포넌트(서비스)를 여러 개 조합해서 하나의 애플..
유니온 파인드 유니온 파인드는 일반적으로 여러 노드가 있을 때 특정 2개의 노드를 연결해 1개의 집합으로 묶는 union 연산과 두 노드가 같은 집합에 속해 있는지를 확인하는 find 연산으로 구성된다. union - 각 노드가 속한 집합을 1개로 합치는 연산이다. 노드 a, b가 a ∈ A, b ∈ B 일 때 union(a, b)는 A ∪ B를 말한다. find - 특정 노드 a에 관해 a가 속한 집합의 대표 노드를 반환하는 연산이다.노드 a가 a ∈ A 일 때 find(a)는 A 집합의 대표 노드를 반환한다. 구현 방법 일반적으로 1차원 배열을 이용해 각 노드가 속한 집합에서의 대표 노드를 저장한다. 1~6의 값을 가지고 있는 노드들이 있다. 현재 연결된 노드가 없으므로 모든 집합의 대표 노드는 자기..