분류 전체보기
-
[Spring] 스프링 필터와 필터 체인Programming🧑💻/Spring 2023. 3. 27. 14:42
스프링 어플리케이션 요청과 응답 흐름 웹 어플리케이션의 구성 웹 어플리케이션을 개발한다는 것은 클라이언트의 요청을 받아 서버에서 여러 동작을 통해 동적으로 만들어낸 응답을 내준다. 여기서 응답을 처리하고 정해진 동작을 하는 요소들을 웹 컴포넌트라고 한다. 웹 컴포넌트들은 독립적으로 있지 않고 컨테이너 안에서 관리된다. 컨테이너는 클라이언트의 요청을 받으면 해당 요청을 처리할 웹 컴포넌트를 지정해 주는 역할을 하며, 웹컴포넌트들의 전반적인 생명주기(초기화 - 동작 - 제거)를 관리한다. 자바에서의 웹 어플리케이션 자바에서는 웹 컴포넌트를 서블릿이라고 하며, 서블릿을 관리하는 컨테이너를 서블릿 컨테이너라고 한다. Tomact은 서블릿 컨테이너의 일종이다. 스프링 더하기 서블릿 컨테이너로는 구현가능한 동작의 ..
-
[JAVA] NPE : 널포인트 ExceptionProgramming🧑💻/Java 2023. 3. 16. 22:09
Null Point Exception이 뭔데?자바는 null이라고 부르는 특별한 타입의 값을 허용하는데, null은 참조변수가 아무값도 참조하고 있지 않은 상태를 나타낸다.String a = null;String type과 같이 참조형의 변수에 값을 할당하면 할당된 값은 변수가 가리키고 있는 힙상의 메모리의 주소를 의미한다. 따라서 null이 할당되게 되면 해당 참조 변수는 실제로는 아무곳도 가리키지 않는 상태로 값이 없는 상태가 된다. 이 Null 값은 NullPointerException을 터뜨려서 자바 개발자들를 괴롭히는 골치 아픈 녀석으로 주의하지 않으면 자주 만나게 된다. NullPointerException은 프로그램이 실행중에 null값인 변수에 접근을 시도하면 터지는 예외이다. Null 참..
-
2차원 선형 변환 시각화Math♾️/Linear Algebra 2023. 3. 16. 14:55
선형 변환이란 선형 시스템에 임의의 벡터 또는 벡터들의 묶음으로서의 행렬이 입력으로 주어졌을 때의 출력을 얻는 과정이다. 어떠한 선형 시스템이 다음과 같이 주어졌다고 하자. $$A=\begin{pmatrix}2&-1\\ 1&1\end{pmatrix}$$ 이 시스템에 임의의 벡터 $\begin{pmatrix}x\\y \end{pmatrix}$가 입력으로 들어가면 시스템에 의한 선형변환된 결과가 시스템의 열벡터의 결합으로 나타나게 된다. $$\begin{pmatrix}u\\v\end{pmatrix}=\begin{pmatrix}2&-1 \\ 1&1 \end{pmatrix}\begin{pmatrix}x\\y\end{pmatrix}=x\begin{pmatrix}2\\1\end{pmatrix}+y\begin{pma..
-
선형 시스템 파이썬으로 표현하기Math♾️/Linear Algebra 2023. 3. 13. 14:09
아래와 같은 2차 선형시스템을 생각해 보자 $$A\vec{v} = \vec{b}$$ ## numpy와 matplot library import (필요한 라이브러리 import) import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt ## 그래프 polt시 사용할 색 지정 mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["#377eb8","#ff7f00", "#4daf4a", "#e41a1c", "#984ea3", "#a65628"]) $$\begin{pmatrix} 2&-1 \\ 1&1 \end{pmatrix} \begin{pmatrix} x\\ y \end{pmatrix} = \..
-
[JAVA] 컴퓨터와 자바 메모리에 대한 이해Programming🧑💻/Java 2023. 3. 7. 12:52
컴퓨터 메모리 컴퓨터 메모리는 두가지 종류로 구분된다. 비휘발성 기억 장치 : 전원 공급이 없어도 저장된 데이터를 유지한다. (컴퓨터가 종료되어도 데이터가 저장되어 있음) ex)HDD,SDD휘발성 기억 장치 : 데이터 유지를 위해서는 지속적인 전원 공급이 필요하다. (컴퓨터 종료시 데이터가 휘발) ex)RAM 메인 메모리CPU는 HDD, SDD 같은 비휘발성 기억장치보다 RAM으로 되어 있는 메인 메모리에 빠른 접근이 가능하다.메인 메모리 상에는 현재 실행중인 어플리케이션과 관련된 데이터들이 저장된다. 어플리케이션 실행시, 종류 직전 후에 다시 실행하는 것보다 컴퓨터 종료 후 다시 실행하는 것이 조금 더 오래 걸리는 이유는 메인 메모리가 캐시 또는 버퍼의 역할을 하기 때문에 어플리케이션 실행에 필요한 일..
-
버전 관리 시스템(Version Control System) GitProgramming🧑💻/Git & Github 2022. 12. 28. 22:56
버전 관리 시스템이란? 버전관리 시스템은 소스코드, 파일, 폴더 등의 변경사항을 추적하고 이를 기록으로 남겨 버전관리를 용이하게 해주는 시스템이다. 스냅샷들을 통해 변경사항을 남겨두고 이를 버전관리에 이용한다. 각 스냅샷들에는 변경사항과 함께 변경한 사람, 메시지 등의 메타정보가 포함되어 변경사항에 대한 파악을 돕는다. 단독으로 이용해도 변경사항을 추적하거나 개발을 병렬적으로 진행하는 등 여러가지 이점이 있다. 하지만 협업을 할 때 큰 효과를 발휘한다. 다른 사람이 어떤 사항을 변경하였는지 인지할 수 있어 동시개발에서 오는 충돌문제를 해결할 수 있다. 누가 이 모듈을 작성하였는가? 특정 파일 또는 특정 라인을 '누가' '언제' '왜' 바꾸었는가? 어디까지 단위테스트가 진행되었는가? 등등 Git 다양한 버..
-
[JAVA] String Constant Pool은 무엇일까?Programming🧑💻/Java 2022. 12. 17. 21:17
String Constant Pool String Constant Pool 개념에 대해 이해하기 위하여 다음 두개의 유사한 자바 프로그램을 비교해보자 case 1 String의 경우 참조형이기 때문에 "=="을 사용해 변수를 비교하면 가리키고 있는 객체가 동일한지(같은 메모리주소)를 가지고 있는지 확인한다. case1의 경우에는 출력으로 "Yes"가 나온다. class GFG { public static void main(String[] args) { String s1 = "abc"; String s2 = "abc"; if (s1 == s2) System.out.println("Yes"); else System.out.println("No"); } } case 2 위의 프로그램과 같이 String 변수를..
-
진정한 질문에 의미Bull-shit🐶 2022. 12. 5. 15:18
인간이 자신들이 사는 환경을 이해하기 위해서는 주변의 사물들의 변화에 대한 인간만의 설명이 필요했다. 관찰을 통해서 물체에 대해 파악하고 이를 바탕으로 인간의 상상력을 더하여 가정을 세웠다. 그리고 실험을 통하여 세운 가정이 자연의 속성을 잘 표현하고 있는지 검증하는 과정을 거듭하며 인간은 지식의 지평을 점점 넓혀갔다. 이렇게 넓어진 지식의 경계는 더 광범위한 시야를 가지고 현실세계를 바라볼 수 있는 힘을 주었지만 동시에 새로운 관점을 갖기 위한 더 많은 장애물을 설치했다. 이미 존재하는 지식들을 이해하기 위해서 많은 과정과 결과를 습득하기 위해 노력해야 하며 이 흐름 속에서 누군가들의 흔적이 머리 여기저기에 잔재하게 되었다. 이 것들은 생각의 경계를 형성하여 사람들은 무의식적으로 세부적인 것들에 대해서..