Tecoble

woowacourse code review & devlog

    #transactional

    트랜잭션 내에 외부 리소스 요청이 담기게 되면 어떤 문제가 발생할까?

    트랜잭션 처리를 위해서는 데이터베이스와 통신하기 위한 이 필요하다. 하지만 커넥션 생성을 위해서 많은 비용이 필요하다. 이러한 비용을 절감하기 위해 커넥션을 미리 생성한 뒤 을 통해 관리한다. 커넥션 풀의 개수는 되어 있다. 만약 동시에 데이터베이스…

    • 4기_매트
    #hashmap

    HashMap vs HashTable vs ConcurrentHashMap

    이미지 출처: Top 35 Data Structure & Algorithms Interview Questions and Answers in 2021 각 자료구조는 필요에 따라 선택되고 활용된다. 인터페이스의 구현체로는 , , 등이 있다. Map 인터페이스를 구현하면, 형태를 띈다. 그렇다면 이 셋은 무슨 특징을 가지고, 서로 어떤 차이가 있을까? 이번 글에서 해당 구현체를 비교하며 확인해보자.

    #linux

    Ubuntu PPA 저장소 관리

    서버를 구성할 때, 필요한 프로그램들을 공식 저장소를 통하여 보통 설치하게 됩니다. 하지만 저장소에 모든 프로그램 설치 데이터가 존재하진 않습니다. 다른 버전을 설치해야 할 때도 있을 것이고, 아예 등록되어 있지 않은 프로그램을 설치해야 할 때도 있습니다. 이번 주제는 서버용 배포판으로 많이 사용되는 우분투에서 어떻게 저장소들을 관리할 수 있는지에 대한 글입니다.

    #linux

    리눅스 파일 시스템 경로 구조

    작성한 프로그램을 서버를 통해서 배포 시에 리눅스를 많이 사용합니다. 이 때, 리눅스를 잘 활용하기 위해서 리눅스의 각각의 경로(directory, 디렉터리)에 접근하여 작업할 때도 있습니다. 하지만 명령어를 따라치면서 어떤 의미를 가졌는지 쉽게 파악하기가 어렵습니다. 이를 이해하기 위한 리눅스 파일 시스템의 경로에 대해서 간단하게 훑어보는 리눅스 파일 시스템에 관한 글입니다.

    #jpa

    JPA CascadeType.REMOVE vs orphanRemoval = true

    JPA를 공부하다 보면 바로 이해하기 쉽지 않은 개념들을 몇 개 마주친다. 필자는 연관관계 매핑, 영속성 전이, 고아 객체 등이 특히 어려웠다. 이때 와 가 유독 헷갈렸는데, 직접 학습 테스트를 작성하며 이해했다. 이번 글에서는 영속성 전이(REMOVE)와 고아 객체를 학습 테스트를 통해 비교하여 살펴본다. 최종적으로 독자들이 둘의 차이를 이해하는 것을 목표로 한다.

    #git

    git submodule로 중요한 정보 관리하기

    git submodule은 메인(부모) 레포지토리에 하위(자식) 레포지토리를 두고 관리하기 위한 도구이다. 하나의 프로젝트에서 다른 프로젝트를 함께 사용해야 하는 경우 주로 활용한다. 필자는 이번에 이를 프로젝트 비밀 정보를 숨기기 위한 용도로 이용했다. 어떻게 적용하게 됐는지, 어떻게 적용했는지를 글을 통해 알아보자.

    #spring

    DTO vs VO vs Entity

    DTO와 VO는 분명히 다른 개념이다. 그런데, 같은 개념으로 생각해서 사용하는 경우가 많다. 왜일까? ⌜Core J2EE Patterns: Best Practices and Design Strategies⌟ 책의 초판에서는 데이터 전송용 객체를 로 정의했다. 그 이후 2판에서는 해당 객체를 로 정정해서 작성했다. 이 때문에 DTO와 VO를 혼동하게 된 것 같다. 이번 글에서는 DTO, VO, Entity의 정의와 특징을 살펴본다. 마지막에는 세 객체를 도표로 비교하며 정리를 한다.

    #java

    웹 MVC 각 컴포넌트 역할

    개발을 하다보면 여러 디자인 패턴을 마주하게 된다. 그 중 가장 자주 보는 디자인 패턴은 일 것이다. MVC 패턴의 각 컴포넌트(Model, View, Controller)는 담당하는 역할이 있다. 해당 패턴을 사용하기 앞서 어떤 컴포넌트가 무슨 역할을 수행하는지 이해하는 것이 중요하다. 이번 포스트에서는 을 정리하려 한다. 먼저 MVC가 무엇인지 알아보고, 이어서 각 컴포넌트의 역할을 차례대로 설명한다.