전체 글(408)
-
(TIL) 20222021, 만들면서 배우는 클린 아키텍처
📕Facts(한 것) 스타트업 면접 DB 트랜젝션과 락에 대해서 더 공부 비슷한 프로젝트를 진행하는 분과 컨텍 정규화와 비정규화에 대한 고찰 만들면서 배우는 클린아키텍처 독서(단일 책임 원칙) 📕Findings(배운 것) 어제에 이어 오늘도 면접을 진행했다! 첫 오프라인 직장 면접이어서 많이 설레면서 떨렸다. 편한 분위기에서 나의 프로젝트와 내가 해온 것들에 대해서 설명했고, 내가 평소에 추구하는 개발 방향, 협업 방식, 테스트코드에 대한 생각 등을 이야기 했다. (내 스스로 나의 부족한 점을 잘 숨기지 않았을까 싶다) 트렌젝션과 락에 대한 질문이 들어왔는데, 사실 락에 대한 개념이 잘 탑재가 되어 있지 않아서 길게 설명을 못했다. 그래서 오늘 공부했다. 아래의 글을 보고 트렌젝션과 락에 대해 알아보자...
2022.02.22 -
(Spring) MVC에 대해서
🏴들어가며 Spring이 있기 전의 방식을 구현해본 사람이라면 스프링이 얼마나 마법 같은지 알 수 있다. 하지만 이 마법같은 것을 이해해야 비로소 마법에서 기술이 되지 않겠는가? 그래서 그 첫 번째 시작을 MVC에서 부터 시작하려 한다. (MVC는 제록스 연구소에서 일하던 트뤼그베 린즈커그가 처믐으로 소개한 개념으로, 데스크톱 어플리케이션용으로 고안되었다.) 🏴MVC란? MVC가 뭘까? (MVP 아님) MVC는 Model View Controller의 약자이다. 그럼 각각의 Model, View, Controller에 대해서 알아봐야할 것이다. Model은 view가 렌더링하는데 필요한 데이터이다. 간단하게 설명하면 getTasks를 실행할때 Tasks가 있어야 불러오지 않겠는가? 이때..
2022.02.21 -
(Java) JDBC란?
🏴JDBC의 정의 JDBC(Java Database Connectivity)는 뭘까? 이름만 보면 그 쓰임을 대충 짐작할 수 있다. 자바와 데이터에이스 간을 연결하는 중간자 역할을 하는 친구 정도? 로 받아들이면서 시작하자. 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API SQL과 프로그래밍 언어의 통합 접근 중 한 형태 기존에 DB를 공부했다면 알 것이다. 데이터를 추가하거나 삭제, 수정할때 마다 DB에 쿼리문을 날려서 실행해야한다는 것을. 그런데 웹 어플리케이션의 경우 우리가 직접 모든 요청에 대한 쿼리문을 DB에 날릴 수 없다.(가능하다면 이런게 필요 없겠..
2022.02.20 -
(Database) DML, DDL, DCL
DML(Data Maniupluation Language) DML이라는 이름을 뜯어 보면 그 뜻을 알 수 있다. Data(정보)를 Manipulation(조작) 하는 Language(언어) 이다. 정말 간단하지 않은가! 그럼 어떤게 DML일까? 어떤게 정보를 조작하는 언어일까?(사실 단어에 가깝다) 정보를 추가하는 INSERT 정보를 수정하는 UPDATE 정보를 삭제하는 DELETE 정보를 조회하는 SELECT 등이 있다. DDL(Data Definition Language) DDL도 마찬가지다. 정보를 정의(+조작)하는 언어이다. 정보를 정의한다고? 정의할게 뭐가 있을까? 우리는 DB를 사용할 때 가장 처음으로 스키마를 정의(생성)한다. 그리고 조작으로는 테이블 삭제를 하는 DROP, 테이블을 변경하는..
2022.02.20 -
(클린코드) 1장. 깨끗한 코드
먼저 클린코드, 클린아키텍처를 쓴 Uncle Bob 에게 감사하며 이 글을 시작한다. 클린코드 1장에서는 '코드'에 대해서 알아보고, 좋은 코드와 나쁜 코드에 대해서 알아본다. There Will Be Code 이 파트에서는 코드의 중요성에 대해 말한다. 코드는 요구사항의 디테일한 부분을 나타내기 때문에, 코드를 신경쓰지 않을 수 없다는 것이다.(반드시 코드를 신경써야 한다!) Bad Code 여기서 인상깊은 예시가 등장하는데 바로 80년대 킬러 앱에 관한 예시이다. 이 킬러앱은 초기에는 정말 잘 나갔으나, 이후에 사용자가 많아지자 급격하게 서비스를 종료하게 된 앱이다. 저가가 말하는 이 앱이 서비스를 종료한 이유는 바로 시장에 반응하기 위해서 코드를 대충 작성했기 때문이다! 결론은 코드를 보는 안목을..
2022.02.20 -
(Database) 인덱스(index)가 뭐고 왜 쓸까?
1. 들어가며 🙌 수 많은 데이터가 저장되어 있는 데이터베이스를 상상해보자.100개, 1000개, 10000개, 100000개... 그리고 여기에서 한 데이터를 찾는 select연산을 수행한다고 상상해보라.(마치 배열에서 선택정렬을 한다고 생각하는 것과 같다.) 그렇다면 데이터의 수 만큼 탐색 시간이 늘어날 것이다. 그리고 우리는 생각한다.어떻게 하면 탐색 시간을 줄일 수 있을까? 자료구조를 배웠다면 힌트를 얻을 수 있을 것이다. 퀵정렬이 왜 빠른가? 바로 기준점이 있기 때문이다. 그렇다. 지금하려는 인덱스도 데이터베이스의 기준점에 대해서 얘기한다. 2. 인덱스가 뭘까? (왜 써?)인덱스는 데이터베이스 테이블에 대한 검색 성능을 높여주는 자료구조이다. 그렇다. 인덱스를 사용하는 이유는 검색 성능을 높여..
2022.02.20