[Database] DBA급 개발자로 - #3 Database Storage 1/2
2022. 9. 1. 08:32
Database/DBA급 개발자로
이전 포스팅에서 중급 SQL에 대해 살펴봤습니다. 이번 포스팅을 통해서 DBMS가 데이터를 디스크에 어떻게 저장하고 관리하는지 살펴보겠습니다. DBMS가 데이터를 저장하는 방법 대다수의 DBMS는 전원이 꺼져도 데이터가 보존되는 비휘발성 저장 장치를 기준으로 설계됐습니다. 최근에는 휘발성 저장 장치만큼 빠르면서도 비휘발성 저장 장치처럼 전원이 꺼져도 데이터가 보존되는 특성을 지닌 NVRAM이 개발됐습니다. 비휘발성 저장 장치는 휘발성 저장 장치보다 더 많은 데이터를 저장할 수 있지만 I/O에 소요되는 시간이 훨씬 깁니다. 따라서 DBMS는 비휘발성 저장장치를 사용함에 있어 I/O 비용을 최소화할 수 있도록 설계됐습니다(예를 들면 random access보다는 sequential access를 선호하도록 ..
[Database] DBA급 개발자로 - #2 Intermediate SQL
2022. 8. 31. 19:02
Database/DBA급 개발자로
이전 포스팅에서 relational model에 대해서 살펴봤는데요, 이번 포스팅에서는 RDBMS 중급 난이도 SQL의 사용법과 특징을 살펴보고자 합니다. Aggregation Functions 데이터베이스에서 aggregate 함수는 여러 개의 데이터 값을 입력으로 받아 하나의 결과 값을 내놓는 함수입니다. 이러한 함수는 데이터베이스에서 대량의 데이터를 다루는 데 있어서 매우 유용합니다. 일반적으로 데이터베이스에서는 이러한 함수를 이용하여 평균, 최댓값, 최솟값, 합계 등을 계산할 수 있습니다. 예를 들어, 고객 데이터베이스에서 고객들의 연령대별 평균 소득을 계산하기 위해서는 소득이라는 열을 이용하여 aggregate 함수인 평균 함수(AVG)를 적용할 수 있습니다. Aggregation 함수의 예시입..
[Database] DBA급 개발자로 - #1 Relational Model
2022. 8. 31. 19:01
Database/DBA급 개발자로
Relational Model 이번 포스팅에서는 다양한 데이터베이스가 탄생할 수 있었던 계기인 관계형 모델(Relational Model)에 대해 알아보겠습니다. 개발자에게 가장 큰 관심사는 역시 데이터베이스입니다. 그럼 데이터베이스가 무엇인지부터 살펴보겠습니다. 데이터베이스는 데이터를 쉽게 접근, 관리하고 업데이트할 수 있도록 구성된 데이터의 모음입니다. 따라서 우리는 데이터를 flat file에 저장을 하던, csv에 저장을 하던 상관없이 데이터를 저장하는 것을 데이터베이스라고 부를 수 있습니다. 하지만 데이터를 아무런 생각 없이 저장하게 된다면 무슨 문제가 발생할 수 있을까요? 첫 번째로는 데이터가 정확한지 확신할 수 없습니다. 만약 중복 데이터가 있다면 어떤 게 정말 내가 원하는 데이터인지 어떻게..
[Spring Boot] @Transactional이 COMMIT을 실행하는 코드까지
2022. 8. 6. 14:59
Java/Spring Boot
Spring Boot의 @Transactional 어노테이션은 트랜잭션을 사용자가 편리하게 사용할 수 있도록 제공되는 어노테이션입니다. @Transactional 어노테이션을 통해 해당 트랜잭션의 다양한 옵션을 설정할 수 있습니다(propagation, isolation level 등). 이번 포스팅에서는 @Transactional 어노테이션이 어떻게 동작하는지 알아보겠습니다. Spring Boot는 AOP(Aspect Oriented Programming) 기법을 통해 공통 관심사를 Aspect의 형태로 처리합니다. @Transactional 기능은 데이터베이스와 상호작용하는 다양한 메서드들의 공통 관심사인 트랜잭션을 분리해서 처리하는 점에서 AOP에 포함된다고 볼 수 있습니다. 그럼 AOP를 구현하는..
[Spring Boot] refresh context 차근차근 따라가기
2022. 5. 11. 08:19
Java/Spring Boot
해당 포스팅은 [Spring Boot] 대체 어떻게 실행되는걸까 ? 포스팅의 일부입니다. 2022.05.01 - [Java] - [Spring Boot] 대체 어떻게 실행되는걸까 ? [Spring Boot] 대체 어떻게 실행되는걸까 ? beanFactory.registerSingleton("springApplicationArguments", applicationArguments); Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게.. code-run.tistory.com Spring Boot의 ApplicationContext가 초기화되는 과정에서 refresh 과정이 있습니다. 이번 포스팅을 통해 refresh가 어떻..
온라인 메뉴판 서비스 ONU 프로젝트 후기
2022. 5. 10. 21:09
Projects
2021년 12월은 현재의 회사에 입사하기 전 붕 뜬 시간이 있어 한참 해볼만한 프로젝트가 없나 고민하던 시기였습니다. 그러다 우연히 알게 된 컴퓨터 공학과 동생의 추천으로 스타트업 동아리에서 잠깐 개발을 맡을 기회가 있었습니다. 제 프로젝트 경력으로는 인턴쉽 기간 동안 진행한 작은 프로젝트밖에 없었지만, 인턴쉽 프로젝트를 통해서 프런트와 백엔드 모두 어느 정도 경험해봤다는 자신감을 가지고 진행했습니다. 처음에는 모든 것이 엉망이었습니다. 온라인 메뉴판 서비스(기존 서비스의 이름은 WeQ)를 제공하는 게 목적이었지만 메뉴판과 관련된 데이터의 등록은 대부분이 수동으로 이뤄졌습니다(데이터베이스에 데이터를 수동으로 하나하나 넣는 방식....). 서비스의 목표에 도달하려면 쉽게 메뉴를 등록할 수 있어야 하기 때..
[Career] 비전공자 조종사가 6개월 독학으로 네카라쿠배까지
2022. 5. 7. 15:10
Career/활동
저는 조종사를 양성하는 항공운항학과의 졸업생입니다. 정확히 말해 학생 조종사였고 현재는 라인 플러스 백엔드 개발자입니다. 짧게 요약하자면 저는 4학년 2학기를 남기고 1년 휴학을 했었고, 해당 기간 동안 현재 제 회사의 인턴쉽을 거쳐 정규직으로 합격했습니다. 구체적으로 제가 어떻게 개발자를 준비했는지는 다음 포스팅을 참고해주세요. 2022.10.29 - [Career] - 비전공자가 LINE PLUS 개발자가 되기 위해서 비전공자가 LINE PLUS 개발자가 되기 위해서 2022.05.07 - [Career] - 비전공자 조종사가 6개월 독학으로 네카라쿠배까지 비전공자 조종사가 6개월 독학으로 네카라쿠배까지 저는 조종사를 양성하는 항공운항학과의 졸업생입니다. 정확히 말해 code-run.tistory.c..
[Spring Boot] Bean이 살고있는 집 ApplicationContext 기능 살펴보기
2022. 5. 5. 12:51
Java/Spring Boot
해당 포스팅은 [Spring Boot] 대체 어떻게 실행되는걸까 ? 포스팅의 일부입니다. 2022.05.01 - [Java] - [Spring Boot] 대체 어떻게 실행되는걸까 ? [Spring Boot] 대체 어떻게 실행되는걸까 ? beanFactory.registerSingleton("springApplicationArguments", applicationArguments); Spring boot를 사용하다 보면 이 마법 같은 프레임워크가 어떻게 동작하는지 궁금할 때가 있습니다. Spring boot는 어떻게.. code-run.tistory.com ApplicationContext의 기능 ApplicationContext는 Spring의 advanced container입니다. Applicatio..