본문 바로가기

전체 글57

잘못 설계된 데이터베이스는 어떻게 수정해야 할까? (1) (feat.이상현상) 목차 1. 이상현상 2. 함수 종속성 3. 정규화 들어가기 전.. 데이터베이스에 저장된 데이터는 일관성과 정확성을 가져야한다. 데이터베이스 설계를 하면 테이블이 생성된다. 하지만 잘못된 설계를 하면 테이블에 삽입,삭제,수정 작업을 했을 시, 이상현상이 나타난다. 이상현상은 데이터베이스가 가져야 하는 일관성을 훼손하게 되고, 데이터의 무결성을 깨뜨리게 된다. 이상현상이 일어난, 잘못 설계된 데이터베이스를 수정하여 정상으로 만드는 과정을 정규화라고 한다. 이번 포스팅에서는 이상현상에 대해 알아보자. 1. 이상현상이란 ? 데이터베이스의 설계가 잘못되었을 때 발생하는 문제이다. 그렇다면 어떤 이상현상이 있을까? 예시를 들어 생각해보자. 다음은 계절학기 데이터베이스 (Summer)이다. sid (학번) class.. 2020. 7. 28.
CI & CD 에 대해 알아보자. 목차 1. CI/CD에 대해 알아보자. 2. CI/CD 연동 시 구조에 대해 알아보자. 1. CI/CD에 대해 알아보자. CI (Contious Integration)은 지속적 통합이다. 지속적 통합이라는 것은 어떤 의미일까? 코드 버전 관리를 하는 VCS (Git,SVN 등)에 PUSH를 하면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정이다. CD (Contious Deployment/Continuos Delivery)는 지속적인 배포/지속적인 서비스제공이다. 지속적인 배포란, 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정이다. 이러한 과정이 왜 필요하게 된 것일까? 이를 알아보기 위해 아래에는 Red Hat 문서에 있는 글을 가져와 보았다. CI/CD는 애플리.. 2020. 7. 26.
AWS EC2, RDS, S3에 대해 알아보자. 목차 1. 소개 2. AWS EC2, RDS, S3에 대해 알아보자. 1. 소개 "클라우드 컴퓨팅에 대해 알아보자" 포스팅에서 클라우드 컴퓨팅에 대해 알아보았다. 이 중 IaaS 유형인 AWS를 이용하여 클라우드 컴퓨팅 서비스를 이용해보고자 한다. 우선, AWS에 대해 더 자세히 알아보자. 다음은 공식 사이트의 소개글이다. 아마존 웹 서비스(AWS)는 안전하고 신뢰할 수 있으며 쉽고 빠른 확장성과, 비용을 절감할 수 있는 플랫폼을 ‘Cloud’로 제공하고 있습니다. 확장성이 뛰어나고 신뢰도가 높은 IT 솔루션을 배포할 수 있도록 AWS에서 인프라를 관리 할 수 있게 합니다. 아마존 웹 서비스 사용 시에는 선 비용이나 장기 약정 없이 사용하는 만큼만 지불 할 수 있습니다. 다음은 AWS에서 제공하는 인프라.. 2020. 7. 25.
클라우드 컴퓨팅에 대해 알아보자. 저번 포스팅에서는 호스팅 서비스에 대해 알아보았다. 클라우드 컴퓨팅은 어려운 개념이 아니다. 호스팅 서비스를 조금 더 확장한, 인프라의 질적/양적 발전을 한 것이 바로 클라우드 컴퓨팅이라고 할 수 있다. 클라우드 컴퓨팅 (Cloud Computing) 클라우드 컴퓨팅에서는 두 가지 키워드가 있다. 가상화와 종량제이다. 먼저 종량제라는 것은 사용하는 것만큼 돈을 낸다는 것이다. 가상화라는 것은 무엇일까? 컴퓨터라는 물리적 기계가 있다. 이 컴퓨터 위에 운영체제를 설치한다. 이제 운영체제 위에 가상머신 (소프트웨어로 만든 기계)를 설치한다. 이때, 가상머신은 운영체제 위에서 동작하는 소프트웨어이지만, 기계인 것처럼 동작한다. 그렇기 때문에 이 가상머신 위에 여러 개의 운영체제를 설치할 수 있게 된다. 따라서.. 2020. 7. 23.
호스팅 서비스가 뭘까? (feat. 웹호스팅과 서버호스팅) 클라우드 컴퓨팅을 공부하기에 앞서, 웹호스팅과 서버호스팅이라는 개념을 먼저 정리하고자 한다. 개발자가 혼자 서비스를 운영한다고 생각해보자. 하나의 웹 어플리케이션을 운영하기 위해서는, 개발자는 서버, 스토리지(파일저장소), 데이터베이스 ,네트워크, 소프트웨어, 모니터링 등의 서비스를 모두 관리해야 한다. 이러한 관리에 대한 부담을 덜 수 있는 방법이 있다. 바로 호스팅 서비스나 클라우드 서비스를 이용하는 것이다. 먼저 호스팅 서비스를 먼저 살펴보자. 호스팅(Hosting)이라는 것은, 서버쪽에서 사용되는 컴퓨터 또는 소프트웨어를 제공하는 사업자이다. 호스팅 사업자들은 IDC (Internet Data Center)라는 것을 사용한다. IDC는 아주 안전하고, 전기가 차단되도 자가발전이 되고, 인터넷과 같.. 2020. 7. 23.
[스프링부트와 AWS로 혼자 구현하는 웹서비스] Web Layer, Service Layer, Repository Layer 요약 *API를 만들기 위한 3개의 클래스 * Spring 웹 계층 스프링 웹 계층에 대해 알아보기에 앞서, API 서버에 필요한 클래스는 크게 3개가 있다. * Request 데이터를 받는 Dto * API 요청을 받을 Controller * 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 스프링 웹 계층에서 위의 3가지 클래스들이 어떤 구조를 이루며 구현되는 것이 좋을지 알아보자. Spring 웹 계층 Web Layer 외부 요청 (@Filter, 인터셉터, @ControllerAdvice) 에 대한 전반적인 영역 컨트롤러 (@Controller), 뷰/템플릿 영역 Service Layer @Service에 사용되는 서비스 영역 @Transactional이 사용되어야 하는 영역 트랜잭션과 .. 2020. 7. 23.