https://susuhan.notion.site/Spring-DI-6113d9eefba446c99413d1323abe9276 - 이쁘게 보기 - Spring DI 방법론 글의 목적 필드 의존성 주입과 setter 의존성 주입, 생성자 의존성 주입에 관한 차이를 알아가기 susuhan.notion.site Spring DI 방법론 💡 글의 목적 필드 의존성 주입과 setter 의존성 주입, 생성자 의존성 주입에 관한 차이를 알아가기 A. 문제의 발단 코드 컨밴션이 존재하지 않아, 프로젝트 내에 코드의 일관성이 일치하지 않는 현상이 발생하였다. 그 중 하나로 의존성 주입하는 방식이 거론되어, 의존성 주입 방식의 차이와 실제 오류가 발생하는지를 알아보게 되었다. 의존성 주입 방식에는 크게 3가지가 존재한다...
React Query 🔥 목적 🔥 : 1. 처음 보는 사람도 이해할 수 있어야 한다. 2. 개발 중에 참고할 수 있는 수준이어야 한다. 상태 관리 라이브러리란? 1. 서버 상태 관리 라이브러리 리액트에는 상태 관리 라이브러리의 큰 종류로 서버 상태, 클라이언트 상태가 존재한다. 클라이언트 상태 관리 라이브러리는 리덕스, 리코일, Zustand 등으로 존재한다. 2. 왜 상태 관리 라이브러리를 사용하나? 리덕스를 사용하는 이유: https://koolreview.tistory.com/119 서버 상태 라이브러리를 사용하는 이유: 간단히 서버의 데이터를 가져와 관리해주는 라이브러리라 생각하면 된다. Client vs Server State Client state 앱 메모리에 유지되고 이를 액세스 하거나 업데..
왜 우리는 상태 관리를 할까? 아무런 이유 없이 나는 강의에서 사용해서 사용했다 😥 저는 초반 웹 개발을 배우면서 Vuex(상태 관리 라이브러리)를 사용하니까 사용했습니다. 그래서 상태 관리 라이브러리가 무엇인지 제대로 고민해보지 못한 것 같습니다. 개발을 점점 진행하다 보니 상태 관리가 무엇인지 서버에서 가져온 값은 무엇인지 고민하게 되어 이 글을 작성합니다. 상태 관리란? 상태 관리를 한국어로 할 때 더 직감적으로 이해하는 데 있어 방해가 된다고 생각합니다. 영어로 적을 시 State Management입니다. 여기서 State를 볼 수 있는데 State는 리액트의 useState 훅에서 가리키는 State를 말합니다. 한마디로 페이지나 컴포넌트에서 사용되는 State를 관리하는 라이브러리입니다. 왜..
이지스 퍼블리싱 서평 이벤트로 책을 무료로 받아 읽고, 서평을 남깁니다. 책을 보았을 때 첫 인상 책이 500페이지정도, 책의 크기는 A4정도 된다. 초판은 21년 2월이고 약 7개월 뒤인 9월에 개정판이 나왔다. 가격은 3만원이며, 이북으로 구매 시 2만원에 구매 가능하다. 가격에선 다른 안드로이드 프로그래밍 책들과 비슷한 가격을 가진다. 안드로이드 앱 프로그래밍 (자바) 판을 구매한 적이 있는데 이 책보다 더 비싸서 그 책에 비해 저렴하다는 느낌이 쎄다. 1장 여타 다른 책들과 동일하게 초보자를 위한 큼직한 그림의 개발 환경 구축, 설치시 오류 해결에 대한 설명 등을 해준다. 오류 해결에 조금만 더 힘을 써줬으면 좋았을 것 같다. 대개 윈도우를 사용하고 사용자 이름을 한글로 하기 때문에(LAN 꼽고 ..
이전 이집트인의 곱셈에서 이진수를 잘 모르고 있다는 느낌을 받았다. 아마 이진수를 잘 몰라도 코딩은 가능하겠지만, 알면 더 잘할 수 있지 않을까? 아님 남들보다 조금 더 간지나는 코딩이 가능하지 않을까? 이후 이 글자색으로 현실의 수에 비유하여 공감시켜드리겠습니다. 이진수 논리회로 책에서 이진수를 아래와 같이 설명한다. 2진수에서는 낮은 전압 레벨(0V)을 0, 높은 전압 레벨(5V)을 1로 각각 대응시킨다. 그와 같이 표현되는 0과 1의 값을 가지는 기본 데이터 단위를 2진 숫자고 하며 간략히 비트라고 부른다. 우리가 과학 시간에 배운 전구를 키는 회로를 생각해보면, 전구가 켜지면 1, 전구가 꺼지면 0이다. 논리회로를 배웠고, 마이크로 프로세서 수업을 들었음에도 불구하고 전구 하나만 생각했고, 그냥 ..
이집트 알고리즘은 인류 최초로 기록된 알고리즘 중 하나다. 빠른 곱셈 알고리즘, 빠른 나눗셈 알고리즘이다. 먼저 알아둬야하는 상식은 고대 문명의 알고리즘이기 때문에 자릿수 개념과 0을 표현하는 방법이 없었다. 자릿수 개념이 없었다는 말이 나중에 나올 이진수와 비슷하다고 생각이 든다. 먼저 곱셈은 1) 1로 곱하기, 2) 1보다 큰 수로 곱하기, 2가지로 정의하여 나눌 수 있다. 1) 1a = a 2) (n+1)a = na+a 먼저 우리가 알고 있는 일반 상식? "곱셈은 덧셈을 여러번한 것이다"를 구현해보자. => 덧셈을 n-1번 반복해보는 알고리즘(n-1번 반복하니 시간 복잡도는 O(n)라고 알 수 있다.) 우리는 덧셈을 배울 때 결합 법칙을 배웠기 때문에 덧셈의 횟수를 줄일 수 있다. 중학교 때 배우는..
이전 글에서 스택의 고정 관념을 파쇄를 위해서 글을 쓴다고 했다. 이전글 먼저 백준의 괄호란 문제를 분석해보자! 9012 괄호 문제 괄호 문자열 Parenthesis String은 (, )로만 구성되어있는 문자열이다. 괄호의 모양이 올바르게 구성된 괄호문자열을 VPS라고 부르고, ( )은 기본 VPS이다.. 예를 들어 (())))() ((())), (() 은 VPS가 아니다. 선입후출! 먼저 넣고 빼면서 생각하는 방법으로 코딩을 한다면 어떻게 될까? 일단 위 문자열 사진처럼 읽으면서, 스택에 다 넣어두고 뒤에서부터 빼면서 쓴다면 내가 데이터를 읽는 흐름이 보라색 선과 같다. 이렇게 넣은 상태에서 넣은 값을 하나씩 빼면서 생각한다면 어떻게 생각하게 될까? 어떻게 코드를 짜야할지 감이 잡히지 않는다. 왜??..
"알고리즘 공부를 하면서 자료구조에 대해서 공부를 해야한다"란 말을 많이 듣는다. 자료구조 라이브러리는 이미 구현되어있는데, 실제 구현 방법에 대해 알고 있는 것이 좋다고 한다. 이유로는 어떻게 돌아가는지를 알기 때문에 실제 구현 시에 도움이 된다고 하는데, 조금 기분이 이상하다. 우리는 이미 배열이란 자료구조를 애용한다. "배열 없이 못 살아"란 말을 할 정도로 배열 자료구조를 많이 사용한다. 조금 코딩하다보면 배열을 찾게 된다. 이처럼 다른 자료구조들도 친근해야하는 것이 중요한 게 아닐까? 친근하다의 기준이 무엇일까? 많이 이용해봤기 때문에 그 자료구조를 적재적소로 이용할 수 있다는 뜻일 것이다. -> 적재적소로 이용하기 위해선 무엇이 필요할까? 어떻게 구현되어있는지 알고 있어야 가능하다. 스택의 개..