분류 전체보기 67

maven-default-http-blocker 에러 발생 원인 및 해결 방법(feat. IntelliJ)

인텔리제이(IntelliJ)에 프로젝트 세팅을 하기 전에, 이클립스(Eclipse)에서 먼저 정상적으로 실행이 되는지 전부 확인하고 진행을 하는 편이다.(아직 이클립스가 더 편함ㅠㅜ)근데 Eclipse에서는 잘 동작하는 소스더라도 새롭게 IntelliJ에 첫 세팅을 하려고 하면 항상 문제가 발생한다. 이때 확인해 볼 부분이 몇 가지가 있는데, 해당 글에서는 Maven update 및 build 시 빌생하는 http blocker 에 대해서 얘기해보겠습니다. Blocked mirror for repositoriesIntellij에서 Maven update를 하려고보니 아래 에러 메시지를 뱉으면서 진행이 안된다.(당연한 말이지만 eclipse에서도 발생할 수 있다)Could not transfer artif..

개발도구 2024.09.10

Spring Container란 무엇인가?

컨테이너(Container)란?꼭 스프링(Spring)뿐만이 아니더라도 소프트웨어 분야에서는 컨테이너(Container)라는 용어가 자주 등장한다.물건을 해외로 보낼 때 항구에서 화물을 적재하기 위한 공간을 컨테이너라고 하듯이, 컨테이너라는 것은 결국 '무언가를 담는 공간'을 의미한다.(매번 그렇지만 다양한 맥락에서 사용되는 단어들은 무언가 되게 추상적으로 느껴진다😑)그리고 서버에서 동작하는 거의 대부분의 기술은 컨테이너 위에서 오브젝트를 만들어 놓고 필요에 따라 그 오브젝트를 제공받아 사용하는 방식으로 유지된다. Spring에서 몇 가지 예를 들자면, DispatcherServlet 그리고 DB와의 Connection을 연결해 주는 DataSource 등이 있겠다. dispatcher or..

Spring 2024.09.06

Bean이란? 그리고 Spring의 싱글톤 활용(singleton registry)

빈(Bean) 이란?Bean이란 컴포넌트 모델에서 유래한 JavaBeans에서 따온 단어이다.컴포넌트 모델(Component Model)은 모듈화, 재사용성, 유지 보수성을 위해 발전해 온 소프트웨어 개발의 범용적인 개념인데, 자바(Java)는 이 개념을 기반으로 JavaBeans라는 개발 표준을 도입했다.그래서 Bean이라는 용어는 Java 초기부터 '재사용 가능한 객체(Object)'를 지칭하는 용어로 자리잡았고, 이 개념이 스프링 프레임워크(Spring Framework)까지 이어지게 된 것이다. 이로 인해, 스프링 컨테이너에 의해 관리되는 객체를 Bean이라는 용어로 부르게 된 것이며 자바에서 컴포넌트(Component)란 사실상 Bean과 동일한 의미로 사용된다. 결론적으로 애플리케이션의 기능을..

Spring 2024.09.01

[OOP] 왜 Class가 아니라 Object Oriented Programming 일까?

'객체지향 프로그래밍'의 정의를 찾아보면 '소프트웨어 개발에서 객체를 중심으로 문제를 해결하는 방법론' 혹은 '프로그램을 객체라는 단위로 구성하여 개발하는 프로그래밍 기법'이라고 많은 곳에서 알려준다.너무나 당연한 말처럼 알고있던 이 단어가 어느날 문득 왜 Class Oriented 가 아니라 Object Oriented 라는 명칭으로 정해졌을까?라는 궁금점이 생겨 다시 정리해봤다. 객체지향 프로그래밍(OOP, Object-Oriented Programming)이란?OOP 라는 용어를 모른다고 할지라도 특히나 Java로 개발을 하면 반드시 객체를 만들게 되어있다.따라서 우리가 만드는 건 오브젝트(Object)가 맞다. 하지만 사실 코딩을 할 땐 Object라는 단어를 한 글자씩 타이핑하진 않고 실제로 p..

Java 2024.08.26

HTTPie 설치 및 Terminal & IntelliJ에서의 사용법

HTTPie라고 터미널에서 HTTP 요청을 간편하게 수행하고 응답까지 가독성좋게 출력해주는 오픈소스 도구가 있는데, 이 HTTPie를 설치하는 방법과 IntelliJ에서 테스트하는 과정을 포스팅해 보겠습니다. 저처럼 Postman이나 웹브라우저로 매번 화면을 번갈아가며 사용하는 것도 귀찮아져intelliJ IDE내 터미널에서 Rest API 테스트를 하고 싶은 분들한테 유용할 것 같습니다.  Chocolatey를 통한 HTTPie 설치 및 테스트 우리가 원하는 건 터미널에서 사용하는 방법이니 공식 사이트에서 HTTPie App을 다운받으면 안되겠죠.터미널에서 HTTPie를 이용하기 위해선 'Chocolatey'라는 Windows OS의 소프트웨어 패키지 관리 도구가 필요합니다.(아래에서 나오지만 Pyth..

개발도구 2024.08.05

이클립스 Java Build Path와 Deployment Assembly 그리고 target

프로젝트의 Properties 창을 보면 여러 설정들이 있는데, target이란 디렉토리를 알아보던 중 Java Build Path와 Deployment Assembly 에 대해 정리해 봤다. Java Build Path 1) Source 탭은 컴파일 및 빌드 과정에서 소스 파일들을 이용할 수 있도록 프로젝트 내의 Java 파일 등의 경로를 지정하는 곳이다. 2) 이클립스에서 'Build'는 주로 컴파일을 의미하기에, Java Compile Path라고 생각하면 된다. 3) 'Output folder'의 경로는 java가 소스파일들을 컴파일하여 실행 가능한 .class 파일을 생성하는 경로를 나타낸다. 실제로 '프로젝트명/target/classes' 폴더를 열어보면 각종 설정 파일 및 xml 파일 또한 ..

Spring 2023.05.24

경로(Path) 설정시 *, ** 차이

별표 == 애스터리스크(Asterisk) == 와일드카드(Wildcard)한국어로는 별표인 *는 애스터리스크 또는 와일드카드라고 불리는데, 개발 소스에서 각종 path 설정을 하는데 있어 자주 사용되기에 정확하게 어떤 의미인지 궁금했다. 찾아보면 Spring설정 파일을 포함하여 많은 프로그래밍 언어에서 패턴 또는 Select쿼리에서 다른 문자를 일치시키거나 대체하는데 사용된다고 설명돼있다. 쉽게 정리하자면, * 와 ** 는 여러 파일 및 디렉토리와 일치하는 경로 또는 특정 패턴을 지정하는데 사용하는 문자다. 추가적으로 동일한 의미인 애스터리스크와 와일드카드가 마치 서로 다른 용어처럼 불리는 이유는 사용되는 분야나 문맥에 따라 다르기 때문이다.1) 애스터리스크(Asterisk) : 일반적으로 프로그래밍 언..

Java 2023.04.13

Vue.js 정의 및 핵심 기능

Vue.js 란 무엇인지 그리고 핵심 컨셉인 데이터 바인딩(Data Binding)과 컴포넌트(Component)에 대해 간략히 정리해보겠습니다. Vue.js란?? vue.js 자체는 프론트엔드. 즉, View와 관련된 처리들을 개발자 대신 관리해주는 라이브러리이다. 그래서 마치 jQuery를 이용하듯이 Script코드 몇 줄만 작성하면 곧바로 VUE를 적용할 수 있다. 공식 문서에서는 Progressive Framework라고 소개되는데, 이것은 처음 말한 것과 같은 간단한 방법으로 기존 프로젝트를 vue.js로 부분부분 점진적으로 또 쉽게 업데이트해나가며 전환할 수 있음을 의미한다. 근데 여기서 프레임워크라는 단어가 나온다. VUE가 라이브러리이면서 프론트엔드 자바스크립트 프레임워크인 이유는 많은 확..

Vue.js 2021.05.01

2개 이상의 다중 컬럼으로 기본키 지정하기

개발 업무를 하려면 필수적으로 ERD를 보게 되는데, 그냥 어렴풋이 넘겨짚었던 개념을 이제서야 정리한다. DB테이블의 Properties 또는 ERD를 보면 아래 예제처럼 2개 이상의 칼럼이 Primary Key로 지정된 테이블을 볼 수 있다.지금까지 대강 느낌적으로 잘 사용해서 다행이었지만, 하나의 테이블에 어떻게 기본키가 여러 개 존재할 수 있지?라는 의문을 마음 한구석에 쌓아 두고 있었다. 그래서 확인해본 결과 "테이블은 오직 하나의 기본키(PK)를 가질 수 있다"라는 것은 정확한 정의라는 것을 확인했다. 근데 여기서 포인트는 PK를 오직 하나의 컬럼으로만 설정할 수 있다는 것으로 잘못 해석하면 안 된다라는 점이다. 나는 이 부분을 잘못 이해하고 있었다. 다시 말해, 위 테이블에서 PK로 설정된 "..

Database 2021.04.07

EJB와 스프링 개론

EJB(Enterprise Java Bean) Java bean이란 자바 객체를 재사용 가능하도록 즉, 컴포넌트화시킬 수 있는 코딩 방침을 정의한 것을 의미한다. (bean은 쉽게 component 또는 객체라고 이해하면 좋다.) EJB란 엔터프라이즈급 어플리케이션 개발을 단순화하기 위해 발표한 스펙입니다. 개발을 하다 보면 많은 객체들을 만들게 되는데, 이러한 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하면 효율적이겠다. 라는 것에서 탄생합니다. 이러한 취지는 좋았으나, 서비스가 구현해야 하는 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 상투적인 코드(상속 and 구현해야 하는 클래스)들이 많다는 불편함이 있었습니다. 당연히 작성된 코드..

Spring 2021.02.23