전체 글(185)
-
Index를 잘 사용하는 방법 - 기초 (TIL)
잡담더보기 처음 개발을 공부했을 때 ORM부터 배워서 그런지 개인적으로 통계성 쿼리 종류가 약한 게 아니라 그냥 못한다는 느낌이 들었다. 특히, 학부 때 DB 개론 수업이 SQL보다 DB 내의 동작원리가 보통 어려워서 평균이 낮다보니 시험 때 비중이 되게 컸었다. 그러다보니 자연스럽게 그것만 공부하게 돼서 그런 것도 있는 것 같다. 심지어.... 그 내용은 오래돼서 이미 머리에서 없어졌다... 아무튼, 책과 개인 블로그를 다니며 공부한 내용을 간단하게 요약해보면, SQL 자체를 잘 짜서 더 나은 성능을 가지는 경로를 쿼리 옵티마이저가 선택하게 하는 방법과 SQL이 아닌 버퍼풀, 메모리, 백그라운드 쓰레드, 특정 전략을 잘 선택하는 방법이 있다. 후자보다는 전자에 조금 더 집중을 해서 계속 글을 ..
2024.04.21 -
스프링 컨테이너 사용 방법(TIL)
1. 스프링 컨테이너가 지원해주는 것들 이전 글에서는 스프링 컨테이너와 서비스 로케이터가 왜 필요한 지에 관해 이야기를 했었다. 이번 편에서는 스프링 컨테이너가 어떤 것을 지원해주고 그 기능을 어떻게 사용하는지 알아보자. 개인적으로 스프링 컨테이너가 지원해주는 기능 중 가장 크다고 생각하는 부분은 아래의 두 가지이다. 스프링 컨테이너의 역할 ○ 애플리케이션 설정 정보를 통한 자동 의존 관계 주입 ○ 애플리케이션 내부에서 빈으로 등록한 객체에 대한 싱글톤 관리 스프링 컨테이너는 빈으로 등록한 객체를 싱글톤으로 관리해주며, 애플리케이션 내부의 설정 정보를 통해 자동 의존 관계 주입을 해준다. 그럼 이게 어떤 장점이 있는 지 알아야 할 것 같다. 그래서 알아보고자 하는 내용은 아래와 같다. 첫 번째로는 빈은 ..
2024.04.17 -
스프링 컨테이너와 서비스 로케이터가 필요한 이유
잡담 더보기 맨 처음 보았던 강의가 영한님의 스프링 핵심 원리 - 기본편이었다. 해당 강의에서는 OOP에 관한 간략한 내용을 설명하고 스프링 컨테이너에 관한 내용을 이야기한다. 당시에는 OOP에 관한 내용이 정확하게 이해되지 않았고 왜 스프링 컨테이너가 필요한 지 정확하게 이해가 되지 않았다. 아마도 정확하게 이해가 안돼서 그런 것 같았다. 반복적으로 OOP에 관한 책 내용을 읽으면서 다시 이 내용을 복습해야 할 필요가 있음을 느꼈고, 과거 강의와 함께 이해한 내용을 정리해보려고 한다. 1. 상속의 문제점과 조립 과거의 글에서 짧게 나마 아래의 이미지와 함께 자바에서의 다중 상속에 관한 이야기를 했었다. 해당 내용을 요약하면, 기능의 추가를 위해 다중상속을 하는 것은 상위 클래스의 수정을 어렵게 만들며,..
2024.04.16 -
자바와 SOLID 원칙(TIL)
잡담 더보기 항상 자바의 캡슐화, 다형성, 추상화, 상속과 SOLID라는 원칙은 참 이해가 안된다. 디자인 패턴 책을 한 번 보고는 완전히 이해가 안돼서 계속 반복해서 본 것 같다. 그 과정에서 내가 이해한 바를 정리하고자 한다. 책에서 나온 예시도 그렇고 전체적인 내용은 다음 글의 작성자 분이 정말 잘 정리해주셨다고 생각한다. 개인적으로 이는 간단한 정리를 위한 것이며 필요할 때마다 예시를 찾고 싶다면 위의 링크 글 혹은 최범균님의 "개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴" 책의 2장을 읽어보길 바란다. 1. 단일 책임 원칙 계속 공부를 하다보면 단일 책임 원칙과 인터페이스 분리 원칙이 헷갈리기 시작한다. 둘 다 최대한 역할을 작게 만들어라 같은데 어떤 차이가 있는지 한 번 고민해보자. ..
2024.04.13 -
자바의 상속, 추상, 다형에 관하여(TIL)
작성 배경 더보기 이전에 "스프링 입문을 위한 자바 객체 지향의 원리와 이해"라는 책에서도 OOP 관한 설명이 있었다. 그 책에는 SOLID원칙과 캡상추다!라면서 캡슐화, 상속, 추상화, 다형성에 관한 설명이 있었다. 처음 배우는 내용이기도 했고 저자에게는 미안한 얘기지만 예시가 부실해서 이해가 안됐다. 지금은 여러 강의도 듣고, 책을 보면서 조금은 이해가 된 것 같다. 그 과정에서 드는 생각은, 프로그래밍이 공부를 할수록 같은 것도 다르게 보이는게 있어서 참 좋은 것 같다. 개인적으로 객체 지향에서 말하는 4가지 요소를 공부하며 느낀 바는, 캡슐화와 나머지로 묶는게 이해가 편하지 않나 싶다. 캡슐화에 관한 이야기는 앞의 getter에 관한 글에 어느정도 정리가 되어있으니, 생략하도록 하고 이 글에서는 ..
2024.04.12 -
자바의 Getter에 대하여
글의 작성 배경 더보기 더보기 Private로 된 내부 변수를 외부에서 값을 가져오거나 변경할 수 있는 방법이 있다. 바로 Getter와 Setter이다. 여담이지만 작년 4월까지 이걸 몰라서 안드로이드 강의 실습시간에 private 객체를 외부로 가져오는 방법이 뭐였죠?라는 말에 답변을 하지 못했었다. 아무튼, 사용자체도 쉽고 개발의 편의를 위해서 Getter, Setter를 열고 이 때까지 프로젝트를 진행했었다. 그런데 유튜브에서 다른 사람 코드리뷰 혹은 코드 작성 가이드라인을 보면 자주 등장하는 말이 "Getter 쓰지 마세요.", "Setter 쓰지 마세요."라는 말을 진짜 많이 본다. 솔직히 해당 내용을 보는데 항상 설명은 안 해줘서 "뭐 어쩌라고?"라는 생각이 많이 들었다. 그래서, 몇 번 이..
2024.04.12