변경될 가능성이 높지만 현재 예상으로는 6월 초에 전역이다. 남은 100일 정도의 기간 동안 어떻게 시간을 보낼지 정리해보았다. 지금까지는 스프링과 알고리즘을 위주로 공부해왔다. 스프링으로 간단한 crud 게시판을 구현해보았다. 더 나아가 인프런에서 김영한 님의 강의를 완독하고 나만의 웹사이트를 제작하여 배포하자는 목표를 설정했었는데 사지방에서 사용해오던 구름 ide 환경에서는 lombok과 devtools와 같은 라이브러리 사용이 불가능했고 구름 컨테이너 자체에서 픽스한 gradle 버전을 업그레이드할 수 없어서 강의 실습할 때 버전 충돌이 잦았다. 또한 한 번 빌드하는데 몇 분씩 걸려서 많이 답답했다. 스프링을 공부하고 실습하는 시간보다 이런저런 문제를 해결하는 시간이 더 오래 걸렸던 것 같다. 윈도..
분류 전체보기
NFT : Non-fungible token(대체 불가능 토큰) + Revolution(혁명) 이 책에서는 대체 불가능한 토큰의 개념과 활용 사례, 현재 발전 상황, 취약점 등 NFT에 대한 전반적인 내용을 서술하고 있다. NFT라는 기술을 이해하는 데 많은 도움이 되는 입문서이다. 책의 내용을 참고하고 구글링한 내용을 덧붙여 NFT에 대해 정리해보았다. NFT란? Non-fungible token의 줄임말로 대체 불가능 토큰이다. 말 그대로 다른 것들과 대체 불가능하기 때문에 무언가의 고유성을 입증하는데 활용할 수 있다. 디지털 자산의 소유권을 증명하는 수단으로 주로 활용된다. 디지털 아트와 같은 디지털 자산은 결국 0과 1로 이루어진 데이터이므로 원본과 복제품을 구분할 수 없다. 즉, 원본과 동일한 ..
이 책은 카이스트의 미래전략연구센터에서 집필한 책으로, 다가올 미래를 객관적으로 전망하고 대비할 수 있는 전략을 제시한다. 특히 코로나19와 같이 인류에 엄청난 파급 여파를 몰고 오는 미지의 재앙 'X이벤트'를 중점적으로 설명한다. 이미 우리가 겪은 또는 가까운 미래에 현실로 다가올 주제들로 구성되어 있다. 객관적인 현재 상황과 곧 초래할 일, 그에 대비하는 방법이 서술되어 있다. 1부에서는 극단적 사건을 의미하는 Extreme Event의 줄임말인 X이벤트의 종류와 그에 대한 현재 상황, 실현 가능성, 해결해야 하는 문제 등을 제시한다. 현재 우리의 삶에 가장 큰 영향을 끼치고 있는 코로나 팬데믹부터 AI의 악용과 위험성, 탄소 배출 문제, 불안정한 가상자산 시장, 사회적 양극화와 갈등의 고조, 북한의..
미래에는 양자컴퓨터가 기존의 컴퓨터를 대체할 것이라는 글을 본 적이 있다. 양자 컴퓨터를 어떻게 만들었고 정말 기존의 컴퓨터를 대체할 수 있을 지 궁금하여 이 책을 읽게 되었다. 책에 나오는 핵심적인 내용과 추가적으로 구글링하여 얻은 정보들을 종합하여 가볍게 정리하였다. 양자컴퓨터의 등장 양자컴퓨터는 1982년에 양자물리학의 대가, 리처드 파인만이 최초로 고안한 아이디어이다. 그는 뼛속까지 물리학자였기 때문에 양자컴퓨터를 고안하게 된 계기도 물리학의 발전을 위해서였다. 0 또는 1이라는 확정값 기반의 기존 컴퓨터로 불확실성을 기반으로 하는 양자 세계를 시뮬레이션하는 것은 모순적이기 때문에 양자역학의 원리로 작동하는 컴퓨터를 만들어야 한다는 이유로 양자 컴퓨터 개념이 등장했다. 양자역학과 양자컴퓨터의 원리..
타입과 추상화 때로는 정보의 정확성보다 그 목적에 집중하는 게 더 좋은 결과를 낼 수 있다. 추상화(Abstraction)란 현실에서 출발하되 불필요한 부분을 도려 내가면서 사물의 진정한 본질을 드러나게 하는 과정이다. 모든 경우, 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것이다. 추상화는 2가지 차원에서 이루어진다. 1. 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만든다. 2. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거하여 단순하게 만든다. 객체지향 패러다임은 객체라는 추상화를 통해 현실의 복잡성을 극복한다. 개념(concept) : 공통점을 기반으로 객체들을 묶기 위한 그릇. ex) 인간, 교통수단, 식물 - 개념을 이용하면 객체를 여러..
세상을 뚜렷한 경계를 지닌 객체들의 집합으로 바라보는 것은 인간의 선천적으로 타고난 인지 능력이다. 우리는 이미 객체지향적인 사고를 하고 있다. 하지만 많은 사람들이 객체지향의 본질과 중심을 제대로 이해하지 못한 상태에서 객체지향 프로그래밍을 하며 오류를 범하고 자신의 생각에서 모순을 찾게 된다. 나도 이 책을 읽으며 나의 생각이 일차원적이고 짧았다는 사실을 깨달았으며 객체지향에 대한 근본적인 이해와 시야를 넓힐 수 있게 되었다. 많은 책과 강의에서 객체지향이 실세계를 모방하는 것이라고 표현한다. 이러한 표현은 실무적인 관점에서는 부적합하지만 개념을 설명하는 데에는 적절하고 효과적이기 때문에 오해의 여지가 있음에도 불구하고 많은 책과 강의에서 사용한다. 즉, 이는 교육용 표현이다. 객체지향의 목표는 실세..
게시판을 구현하기 위해 여러 페이지를 HTML로 만들었으며 그 과정 중 유용한 내용을 정리하였다. 먼저, 타임리프(thymeleaf template engine)를 많이 사용하였다. 템플릿 엔진(Template Engine) : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어로, 순수하게 Java Application(jar)으로만 웹 구현과 기동이 가능하다. Thymeleaf 템플릿 엔진 사용법 1. build.gradle에 아래 코드를 추가하여 의존성을 주입해준다. implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 2. html 태그 안에 아래 속성을 추가해준다. - 의 xmlns 속성은 해당 문서..
URI란? URI(Uniform Resource Identifier) Uniform : 리소스를 식별하는 통일된 방식. Resource : 자원, URI로 식별할 수 있는 모든 것. Identifier : 다른 항목들과 구분하는데 필요한 정보. 인터넷에 있는 자원을 나타내는 유일한 주소로, 통합 자원 식별자라고 한다. URI의 종류 URI에는 URL과 URN이 있다. URL : Uniform Resource Locator, 리소스가 있는 위치를 지정하는 방식으로 특정 서버의 리소스에 대해 정확히 어디에 위치해 있고 어떻게 접근할 수 있는지 알려준다. URN : Uniform Resource Name, 리소스에 이름을 부여하는 방식으로 리소스의 위치에는 영향을 받지 않고 그 리소스 자체를 나타내는 이름 역..
웹 개발자는 평생 HTTP 기반 위에서 개발한다. 언젠가 한 번은 HTTP를 정리해봐야 할 시기가 올 것이다. 라고 김영한 님이 말씀하셨다. 기본적인 개념부터 차곡차곡 정리해보자. 인터넷 네트워크(Internet Network) 네트워크 컴퓨터들은 어떻게 서로 통신을 하는가? 상식적으로 서로 다른 매체간 통신을 하기 위해서는 연결되어 있어야 한다. 유선, 무선 등 방식과 무관하게 매개체를 통해 이어져 있어야 정보 전달이 가능하다. 이렇게 컴퓨터간 이어져 있는 매개체와 그 관계를 포괄적으로 네트워크라 한다. IP(Internet Procotol) 네트워크를 통해 통신을 할 때 수 많은 컴퓨터가 연결될텐데 통신 규칙이 정해져 있지 않으면 엉망진창이 될 것이다. 이를 방지하기 위해 IP가 등장했다. IP는 인..
'운'과 '알고리즘' 이 두 단어는 본질적으로 같이 사용될 수가 없다고 생각한다. 운은 과학적으로 설명이 불가능하고 통계학적으로 도출되는 확률을 뻘쭘하게 만드는 지극히 추상적인 단어이며 반대로 알고리즘은 아름다울 정도로 수학적이고 논리적이며 치밀하게 계산된 매우 구체적인 단어이다. 이 두 단어가 같은 문장에 쓰인 것도 모자라 운'의' 알고리즘이라니 저자가 대체 어떤 논리를 펼칠지 궁금하여 책을 안 펼칠 수가 없었다. 아래는 책의 도입부에 나오는 내용으로, 저자가 생각하는 운의 정의이다. 서론에서 쓴 것처럼 내가 생각하던 운의 정의와는 사뭇 달랐지만 나의 생각은 접어두고 저자의 생각을 바탕으로 책을 읽어나갔다. 인생에는 수많은 변수들이 존재하고 이 중 상당수는 내 통제권을 벗어나 있다. 나는 이 모든 것을..