전체 글
-
[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
인간이 자신들이 사는 환경을 이해하기 위해서는 주변의 사물들의 변화에 대한 인간만의 설명이 필요했다. 관찰을 통해서 물체에 대해 파악하고 이를 바탕으로 인간의 상상력을 더하여 가정을 세웠다. 그리고 실험을 통하여 세운 가정이 자연의 속성을 잘 표현하고 있는지 검증하는 과정을 거듭하며 인간은 지식의 지평을 점점 넓혀갔다. 이렇게 넓어진 지식의 경계는 더 광범위한 시야를 가지고 현실세계를 바라볼 수 있는 힘을 주었지만 동시에 새로운 관점을 갖기 위한 더 많은 장애물을 설치했다. 이미 존재하는 지식들을 이해하기 위해서 많은 과정과 결과를 습득하기 위해 노력해야 하며 이 흐름 속에서 누군가들의 흔적이 머리 여기저기에 잔재하게 되었다. 이 것들은 생각의 경계를 형성하여 사람들은 무의식적으로 세부적인 것들에 대해서..
-
고전의 조건 - 추상화Bull-shit🐶 2022. 11. 26. 13:58
세상은 각기 다른 객체의 상호작용으로 구성되어 있기 때문에 국소적인 부분을 보면 그 형태는 매우 상이하게 보인다. 하지만 한 시스템 상에서의 상호작용이 방향성을 갖게 되면 이러한 개별적인 작용과 반작용은 일관적인 흐름을 갖게 된다. 이 관계를 얼마나 관통하여 표현할 수 있는가는 추상화의 단계에 따라서 나누어질 수 있다. 각 상호작용의 관계에 대하여 집중하게 되면 하나의 구성요소가 변화하면 전체의 형태는 필연적으로 달라진다. 추상화를 통해 상호작용의 핵심을 추출하여 표현하게 된다면 개별의 변화는 전체 시스템에서 큰 영향을 주지 못하게 된다. 본질적으로 책은 사람이 쓰고 사람은 사회적 맥락속에서 생각하기 때문에 책은 시대의 부분에 집중하게 된다. 따라서 세월이 흐르면서 사회의 형태가 변화하게 되면 그 이야기..