기록
[Java] 공공데이터 포털 오픈 API 사용 방법.
✏️개요 오랜만에 작성하는 이번 글의 주제는 공공데이터 포털의 오픈 API 사용방법이다. 공공데이터 포털은 정부에서 운영하는 오픈 API 서비스로 정부의 공공기관들이 운영되는 과정에서 수집한 다양한 종류의 데이터를 일반 기업들 및 국민 모두가 무료로 자유롭게 사용할 수 있도록 하나의 포털에서 제공하는 서비스이다. 필자가 공공데이터 포털의 오픈 API 서비스를 처음 접하게 된 것은 대학교 시절이었는데, 그 당시 졸업 작품을 위한 아이디어를 도출하는 과정에서 도저히 일반 대학생들이 수집할 수 없는 방대한 양의 데이터가 필요했어서 관련 정보를 찾는 과정을 통해 접할 수 있었다. 그러나 다른 아이디어가 채택되면서 사용해 보지는 못하게 되었다. 이와 같은 서비스에 대한 흥미를 느껴 한 번쯤 사용해보고 싶다는 생각..
[Spring] root-contex와 servlet-context
✏️개요 이번에 작성할 글의 주제는 root-context와 servlet-context에 관하여다. 이번 주제를 component-scan을 주제로 한 글에 작성할까 생각했지만, 분리해서 작성하는 게 주제에 좀 더 집중할 수 있다고 생각했다. 이 주제에 대해서는 입사 초기에 시간이 많을 때 스프링과 자바에 대해 공부하는 과정에서 한번 접하고 넘어갔었는데, 이번에 component-scan에 대해 알아볼 때 component-scan이 2개가 존재하는 이유에 대해 궁금하여 찾아보는 과정에서 다시 한번 접하게 되어 글로 정리해보려고 마음먹게 되었다. ❗ 본 게시글은 필자 개인적인 의견이므로 틀린 부분이 있을 수 있습니다. 댓글을 통해 지적해주시면 감사하겠습니다. ✏️root-context와 servlet-..
[Spring] context:component-scan에 관하여
✏️개요 이번에 작성할 글의 주제는 context:component-scan(이하 component-scan) 필자가 이것을 처음 접한 것은 취업 준비를 위해 Spring Framework를 독학하고 있던 시절, XML을 이용한 bean 등록 방법 이후에 어노테이션을 이용한 bean 등록에서 알게 되었고, component-scan이 제공하는 편한 기능을 단순히 감탄하며 사용하기만 해왔다. 현재 실무에서 진행되는 프로젝트에 기능 추가를 무사히 마친 뒤, 시간이 남게 되어 Java의 개념에 집중했던 이전과는 달리 스프링에 대한 기초 지식을 단단히 하고자 스프링 설정 파일을 열었고 그곳에서 component-scan을 만날 수 있었다. 그곳에 있던 것은 역시 독학하며 사용한 기본적인 형태의 component..
[JAVA] 리플렉션(Reflection)
✏️개요 이번에 작성할 게시글의 주제는 리플렉션(Reflection)이다. 리플렉션 역시 다른 개념들과 마찬가지로 실무에서 사용하는 코드를 분석하는 과정에서 마주친 개념이다. 필자가 리플렉션이라는 단어를 처음 듣게 된 것은 취업 준비를 하던 시절에 Java 개발자를 위한 면접 질문 리스트에서였다. 그러나 그 당시에는 그렇게 중요해 보이는 개념이 아닌 것 같았고, 실제로 학부생 시절에도 학습했던 적이 없어 넘어갔었지만 실무에서 사용되는 것을 보고 이번 기회에 개념을 잡아보고자 하여 글을 작성하기로 마음먹었다. ❗ 본 게시글은 필자 개인적인 의견이므로 틀린 부분이 있을 수 있습니다. 댓글을 통해 지적해주시면 감사하겠습니다. ✏️Reflection, 리플렉션 필자가 코드를 분석하는 과정에서 리플렉션이라는 개념..
[JAVA] 가변 인자(Varargs)
✏️개요 이번에 작성할 게시글의 주제는 가변 인자(Varargs)이다. 필자는 이 가변 인자 역시 학부생 시절이나 취업을 준비하는 과정에서 접해본 적 없던 개념이었다. (뭐 이렇게 처음 보는 게 많은 건지) 가변 인자를 처음 접하게 된 것은 역시 현재 실무에서 분석하고 있는 프로젝트에서 접할 수 있었다. 이 과정에서 Java의 Reflection이라는 개념도 접하였는데, 이에 대한 게시글은 다음에 작성하고자 한다. ❗ 본 게시글은 필자 개인적인 의견이므로 틀린 부분이 있을 수 있습니다. 댓글을 통해 지적해주시면 감사하겠습니다. ✏️Varargs, 가변 인자 필자는 처음에는 가변 인자라는 단어 자체도 모르고 있던 상태에서, 프로젝트에서 아래와 같은 형식의 문법을 발견할 수 있었다. public Object..
[JAVA] 정규 표현식
✏️개요 이번에 작성할 게시글의 주제는 정규 표현식이다. 정규 표현식은 학부생 시절부터 여러 언어를 학습할 때마다 등장하는 챕터였는데, 필자는 개인적으로 Thread와 마찬가지로 기피했던 챕터였다. Thread는 내용 자체가 이해하기 어려웠다면, 정규 표현식은 이해하고 싶지가 않았다. ^\\d {3}-\\d {3,4}-\\d {4}$
[JAVA] Volatile 키워드
✏️개요 앞선 게시글에서 Spring과 관련하여 새롭게 알게 된 내용들을 살펴보았으며, 이번 게시글에서는 그 계기가 되었던 Java의 Volatile 키워드에 대해서 살펴보고자 한다. Volatile에 대해서 살펴보는 과정에서 Java의 원자성, 가시성에 대한 내용을 접하게 되었는데 개인적으로 어렵다고 느껴졌지만😢 최대한 이해한 대로 풀어보고자 한다. ❗ 본 게시글은 필자 개인적인 의견이므로 틀린 부분이 있을 수 있습니다. 댓글을 통해 지적해주시면 감사하겠습니다. ✏️Volatile이란? Volatile 키워드는 일반적으로 Multi Thread 환경에서 여러 스레드들이 함께 사용하는 공유 변수에 적용할 수 있는 키워드라고 한다. 즉, 경쟁 상태에 있는 변수에 적용할 수 있다는 것이다. 기존의 스레드들은..
[Spring] Spring의 Multi Thread, Singleton, Thread-safe
✏️개요 앞서 작성한 Collection Framework에 대한 게시글은 현재 실무에서 사용되는 코드를 분석하는 과정에서 필자가 부족하다고 느껴 작성한 글이었다. 이번 주제 역시 그 과정에서 궁금증이 생겨 알아보게 된 내용을 작성해보고자 한다. 이 게시글의 시작은 실무 코드에 작성되어 있던 Volatile이라는 키워드였다. 이는 취업을 준비하는 과정 및 학부생 과정에서도 접해본 적 없는 키워드였기에, 이에 대해서 조사해보던 중 Thread와 관련된 키워드라는 사실을 알 수 있었다. 그러다 보니 자연스레 Thread-safe에 관련된 내용과 Spring의 Singleton 등 자세히 살펴보지 않았던 내용들을 찾게 되었고 필자 스스로가 Thread에 대한 내용을 괜히 무서워 피하기도 했고 Spring의 b..
[JAVA] Collection Framework의 종류 및 특징
✏️개요 필자는 Java를 대학교 때 처음 배우면서 어렵다고 느껴졌던 개념들이 여러 가지 존재했는데, 그중 하나가 바로 Collection Framework다. 배우는 과정에서 컬렉션에 대해 배운 것은 ArrayList를 단순히 기존에 배웠던 배열의 한계점과 비교하며 설명한 뒤, 그것에 대한 간단한 사용방법 정도였다. 대학 과정 이후, 개인적으로 Java에 대해 추가적으로 학습하는 과정에서 역시 컬렉션에 대한 중요성에 대해 알지 못하였기에 적당히 넘어가는 그런 챕터였다.(?) 그러나, Java 웹 개발자로 취업하는 과정에서 컬렉션에 대한 지식은 면접 때 기본 상식으로 질문을 받게 되었고 중요성을 인지하게 되었다. 그러나 취업한 지 2개월 하고 10일이 지난 현재 시점까지 실무의 코드를 분석하는 과정에서 ..
[프로그래머스,Level 2] 튜플 (JAVA 구현)
- 첫 풀이 및 정답풀이 이 문제는 튜플에 속하는 원소들이 주어져 그것을 바탕으로 튜플을 구하는 것인 문제이다. 입출력 예제 1번을 통해 살펴보면, [2, 1, 3, 4]라는 튜블이 있을 때 이 튜블에 속하는 원소는 가장 앞에 있는 숫자부터 차례대로 붙여나가면 된다. 즉, 첫 번째 원소는 가장 앞에 있는 {2}/ 두 번째 원소는 앞선 원소와 그다음 숫자인 {2,1}/ 세 번째 원소는 {2, 1, 3}/ 네 번째 원소는 {2, 1, 3, 4}가 된다. 단, 주의해야 할 점은 튜블 원소 내의 숫자들의 위치는 바뀔 수 있다는 점이다. 위의 세 번째 원소를 예로 들면, {1, 3, 2}도 튜플의 원소가 될 수 있다. 튜플의 원소들은 뒤로갈수록 길어지는 특징이 있기 때문에, 원소들의 길이를 기준으로 정렬한 뒤 가..