본문 바로가기

🌱 우아한테크코스 6기

(8)
인덱스는 만능인가 이 글은 인덱스가 무엇인지 아는 독자를 타겟으로 작성하였으며, MySQL을 기준으로 설명합니다. 목차인덱스란인덱스는 데이터를 어떻게 탐색할까인덱스 성능 비교인덱스 적용 실패 사례알게된 점 인덱스는 테이블 조회 성능 개선에 유용하다. 누구나 이론적으로 이해하고 있는 인덱스의 장점입니다. 하지만 저는 아직 이 장점을 체감하지 못했습니다. 많은 데이터를 관리한 경험이 없기 때문입니다. 따라서 직접 1억건의 데이터를 쌓고 실험해보고자 합니다. 그 여정을 여러분께 공유합니다. 인덱스란인덱스는 데이터베이스에서 데이터를 효율적으로 검색할 수 있도록 도와주는 데이터 구조입니다. 일반적으로 테이블의 컬럼에 대해 설정되며, 해당 컬럼을 기준으로 데이터의 위치를 빠르게 찾을 수 있게 합니다. 아래는 MySQL 공식문서에서 ..
도커란 | 사용 이유 | 기본 명령어 정리 왜 도커가 필요할까?[상황 1] 나는 맥 환경에서 자바17을 사용하고, 다른 개발자는 윈도우 환경에서 자바11을 사용한다. 내가 작성한 record 클래스는 그의 환경에서 제대로 동작하지 않을 것이다. 이러한 상황에서 도커를 도입한다면?[상황 2] 사용 중인 JDBC 라이브러리를 새로운 버전으로 업데이트 하고싶다. 팀원들과 수동으로 환경을 맞추어 개발하고 있다면 어떤 버전으로 업데이트 할지 등을 공유해야 한다. 귀찮고 오류 발생 확률도 높다. 하지만 도커로 개발 환경을 관리하고 있었다면? [상황 3] 현재 진행 중인 총대마켓 프로젝트에 새로운 신입이 합류했다. 신입의 개발 환경을 세팅해 주어야 한다. 내가 로컬에서 개발하고 있는 환경을 신입에게 일일이 설명하고 설정해야 한다. 너무 귀찮다. 이 때 도커..
[코리스토텔레스] 패키지 구조: 계층형 구조 vs 도메인형 구조 https://github.com/woowacourse-6th-team99/2024-coristotle/discussions/3 패키지 구조: 계층형 구조 vs 도메인형 구조 · woowacourse-6th-team99 2024-coristotle · Discussion #3패키지 구조를 계층형 구조로 생성하는 것이 좋을까, 도메인형 구조로 생성하는 것이 좋을까? 계층형 구조 예시 controller ⎿ ProductController ⎿ MemberController ⎿ ArticleController service ⎿ ProductService ⎿ github.com 코리스토텔레스는 본인의 설계에 철학을 갖기 위한 토론 스터디입니다. 해당 스터디에서 주장했던 입장을 정리한 글이므로, 저의 사견이 개입..
[인프라] AWS EC2 EC2Elastic Compute Cloud컴퓨터를 빌려 원격으로 접속해 사용하는 서비스주로 백엔드 서버 배포에 사용, 프론트엔드는 다른 서비스를 더 많이 이용사용 이유내 컴퓨터로 서버를 배포하는 경우 24시간 동안 컴퓨터를 켜놓아야 하므로 번거로움내 컴퓨터로 서버를 배포하는 경우 보안적으로 위험여러 부가기능 제공Region인프라를 지리적으로 나누어 배포한 각각의 데이터 센터EC2는 region마다 따로 관리됨각 region은 고유의 이름을 가짐 (ap-northeast-2, us-east-1 등)선택 기준사용자의 위치와 어플리케이션을 실행하고 있는 컴퓨터의 위치가 멀수록 속도는 느려짐주 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리EC2 설정하기애플리케이션 및 OS 이미지어떤 OS를 가..
[TroubleShooting] 에러 해결 과정에서 알게 된 @DirtiesContext 동작 방식 나의 상황@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)class ThemeDaoTest { private final JdbcTemplate jdbcTemplate; private final ThemeDao themeDao; private final SimpleJdbcInsert themeInsertActor; @Autowired public ThemeDaoTest(JdbcTemplate jdbcTemplate, ThemeDao themeDao) { ..
[우아한테크코스] 2월 한달 회고 3월 중순에 적어보는 2월 회고록. 드디어 시간이 생겼다! 면 거짓말이고 드디어 시간을 다룰 여유가 생겼다. 2월 한 달간 내가 한 일연극자동차 경주 미션사다리 게임 미션자취, 졸업 아니 도대체 연극을 왜…?우리 조원 모두는 우테코에서 연극한다는 사실을 알고 있었다지만 나는 전혀 모르고 있었다. 첫날 OT에서 갑자기 연극을 한다는 소식을 듣고 아, 연극팀이 와서 초대 무대를 하나? 복지 짱이다! 싶었다. 그런데 그 연극을 내가 한다는 것… 절망적이었다. 안 그래도 낯 심하게 가리는데 연기를 하라니 ^__^ 그 당황스러운 마음가짐으로 일주일 간 연극을 준비했다. 각자 아이디어를 가져오기로 해서 자료 조사(?)를 하는 과정에서도 이게 맞나? 싶었다. 뭘 생각하긴 했는데 이거로 하나의 연극을 꾸려야 한다는 게..
[GIT] cherry-pick | 다른 브랜치의 커밋 적용하기 아! 여기가 아닌데!우테코에서는 1단계 미션이 마무리되면나의 모든 커밋 기록이 우테코 공식 계정 본인 브랜치에 하나의 커밋으로 merge 된다.이렇게 머지된 브랜치를 본인의 로컬 브랜치로 복사하여 2단계를 진행해야 한다.1단계에 커밋한 로그들은 하나의 커밋으로 남아있어야 한다. 하지만 여기서 미련한 나는 내가 구현하던 로컬 저장소에 이어서 미션을 진행했다.어디까지가 1단계 커밋이고 어디까지가 2단계 커밋인지 드러나지 않는 상황. 2단계 미션을 제출하는 과정에서 나의 실수를 깨달았다.그러나 이미 너무 멀리왔기에 돌이킬 수 없었다. 리뷰어님께 양해를 구하고 통째로 커밋할까? 새로운 브랜치 파서 다시 하나하나 커밋할까?별의별 방법이 다 떠올랐다. 하지만 여기서 실낱같은 희망.깃이 커밋의 일부를 가져오는 기능을..
[우아한테크코스] 6기 최종합격 회고 우아한테크코스 6기 활동을 시작하고 2주 후에 적는 최종합격 회고록. 내가 찐 막차겠지? 왜 그 때 적지 않았니? 라고 물으신다면... 나의 민낯이 드러난다고 생각했다. 지금 생각하면 그것이 블로그의 묘미인데 😏 혹시나, 정말 혹시나 합격 소식이 잘못된 건 아닐까 하는 마음에 소식을 꽁꽁 숨겼다. 지금 내 일상의 80%가 우테코이기 때문에 첫 글을 우테코로 시작하고 싶었다. 다들 썼길래… 지원 과정, 그리고 그 과정에서의 배운점을 위주로 적어보겠다. 나는 부트캠프에 큰 관심이 없다가 주변에서 하나둘 지원하길래 알아보기 시작한 케이스인데, 우아한테크코스를 조사하면서 그들의 교육관과 교육 방식이 정말 인상깊었다. 24년 평생 받아온 교육과는 결이 전혀 달랐고, 나의 성장에 부스터를 달아줄 것 같았다. 또 인..