Home

데이터베이스의 인덱스

데이터베이스 인덱스데이터베이스도 컴퓨터의 하드 디스크(HDD, SSD)에 데이터를 쓰거나 적는다. 랜덤 IO와 순차 IO하드 디스크 드라이브에 접근하려면 플래터를 돌려서 데이터가 저장된 위치로 헤더를 이동시켜서 데이터를 읽는다. 랜덤 IO는 읽어야 할 데이터의 위치가 흩어져있어서 헤더를 여러번 이동해야 한다. 반면 순차 IO는 읽어야할 데이터의 위치를 딱

기자재 대여 예약 기능약 랩실 공간 대여 예약 기능으로 확장하기

문제 상황기리기리 프로젝트에서 기자재 대여 반납 기능을 중점적으로 개발하다가 광운대학교 미디어커뮤니케이션 랩실에서는 기자재 뿐만 아니라 랩실도 대여 반납을 할 수 있어야 한다는 피드백을 받았다. 문제는 랩실과 기자재 로직이 상당 부분 비슷하지만 랩실의 대여 로직이 기자재 대여 로직과 세세한 부분에서 다르다. 그러면 문제 상황을 여러 가지로 나눠서 해결해본다

서버 시간대에 의존하지 않는 데이터 구현하기

문제 상황기리기리 서비스는 대여 서비스라서 대여 기간과 실제 대여 수령 날짜, 대여 반납 날짜가 중요하다. 문제는 서버 시간대 설정에 따라 실제로 의도한 시간이 맞지 않을 수 있게 된다는 점이다. 그래서 서버를 한국 시간대로 모두 설정해주는 일이 필요하다. 이런 문제는 AWS EC2 인스턴스를 생성할 때 서버 시간대를 한국으로 적용하는 방식으로 해결할 수

광운대학교 학생 구성원 인증은 어떻게 할까?

문제 상황광운대학교 미디어커뮤니케이션 학부 기자재 대여 웹 서비스를 구현할 때 광운대학교 미디어커뮤니케이션 학생만 사용할 수 있도록 해야한다. 하지만 문제는 광운대학교에서는 Open API를 제공하지 않아서 학생 구성원을 어떻게 확인해야 할 지가 큰 문제였다. 개선 방법광운대학교 학습 전산 시스템인 klas에 가보면 개인번호 조회 기능이 있는 걸 발견했다.

페이징 방식에 의존하지 않는 페이지 API 설계하기

요약Rest API의 HATEOAS 원칙을 적용하면 페이징 방식에 의존하지 않는 API를 구현할 수 있다. 첫 페이지에 접근할 수 있는 API만 프론트엔드에게 알려주고 다른 페이지에 접근하는 API는 첫 페이지에 접근하는 API의 응답 데이터에 동적으로 담겨있게 하자. 그러면 페이징 방식 변경에 따른 프론트엔드 변경이 생기지 않는다. 문제 상황기리기리 서비

기자재 대여 데이터베이스 설계

프로젝트 소개기리기리 프로젝트는 광운대학교 미디어커뮤니케이션 학부 기자재 및 랩실 대여 관리 웹 서비스이다.기리기리 프로젝트는 다음과 같은 기능을 제공한다. 기자재 랩실 정보 조회 특정 날짜에 기자재 대여 가능 갯수 조회 대여 상태 관리 대여 취소 특정 날짜에 회원 관리 페널티 관리등등… 테이블 후보 찾기데이터베이스의 테이블이 될 후보를 찾아본다. 테

실전 자바 소프트웨어 개발을 읽고 재밌었던 부분 모음

실전 자바 소프트웨어 개발을 읽고 몇가지 재밌는 포인트를 적어본다. Q. 유지보수에 유리한 코드는 어떤 코드인가?특정 기능을 담당하는 코드를 빠르게 찾을 수 있어야 한다. 코드가 어떤 일을 수행하는 지 쉽게 파악할 수 있어야 한다. 새로운 기능을 추가하기 쉽고 기존의 기능을 제거하기 쉬워야 한다. 캡슐화가 잘 되어 있어야 한다. 사용자가 내부 구현을 몰라도

가상 면접 사례로 배우는 대규모 시스템 설계 - part 1

사용자 수에 따른 규모 확장성단일 서버 클라이언트가 도메인 이름으로 요청을 날릴 때 DNS를 통해 도메인 주소를 통해 웹 서버의 IP 주소를 얻을 수 있다. 클라이언트는 IP 주소로 HTTP 요청을 날린다. 웹 서버는 요청을 처리할 때 필요한 경우 데이터베이스에게 쿼리를 실행하도록 한다. 요청의 결과를 클라이언트에게 응답한다. 어떤 데이터베이스를 사용하

AWS Elastic Beanstalk에서 HTTPS 적용하기

문제 상황광운대학교 미디어 기자재 대여 웹 서비스 프로젝트에서 AWS Elastic Beanstalk(이하 EBS)를 활용해 CICD를 구현했다. 문제는 EBS를 활용한 인프라에서 HTTPS 프로토콜을 적용해야 하는 상황에서 발생했다. 우리 서비스의 EBS는 새 버전을 배포할 때 새로운 EC2를 생성해서 빌드된 파일을 배포하도록 했다. 보통 HTTPS 프로

클라우드 서비스의 인증과 보안 (HTTPS)

HTTPSAPI와 통신할 때 사용하는 프로토콜인 HTTP는 통신 내용을 평문으로 전달된다. 그래서 도청하면 내용을 그대로 알 수 있게 된다.HTTPS는 통신 내용에 보안이 중요한 내용을 다룰 때 사용되는 기술이다. HTTP over SSL/TLS이라는 의미다. HTTPS는 포트번호로 443을 사용한다.SSL/TLS는 OSI 참조모델에서 L