
eGovFrame VSCode Initializr는 전자정부 표준프레임워크 기반 프로젝트를 VS Code 환경에서 쉽게 생성할 수 있도록 도와주는 도구다. 프로젝트 생성뿐만 아니라 CRUD 코드 생성, 설정 파일 생성 기능도 제공한다.그중 설정 파일 생성 기능은 Spr

관계형 데이터베이스에서 데이터를 다루고 관리하려면 SQL을 작성해야 한다. JPA를 사용하기 전의 자바 애플리케이션에서는 보통 JDBC API를 사용해서 SQL을 데이터베이스에 전달하는 코드를 직접 작성했다.이해를 위해 상품을 CRUD하는 기능을 개발한다고 해보자. 먼

아래 3가지 질문에 대한 해결책을 생각해보자.1번. 인터페이스가 있는 경우에는 JDK 동적 프록시를 적용하고, 그렇지 않은 경우에는 CGLIB를 적용하려면 어떻게 해야할까?이전에는 개발자가 상황에 따라서 직접 JDK 동적 프록시를 사용할지 CGLIB를 사용할지 선택해야

eGovFrame VSCode Initializr로 Web 템플릿과 Boot 템플릿을 생성해보면서 자연스럽게 Maven과 Gradle도 함께 살펴보게 되었다.처음에는 Maven과 Gradle을 단순히 “프로젝트 빌드할 때 쓰는 도구” 정도로만 생각했지만, 학습을 진행하

이제 eGovFrame VSCode Initializr를 직접 사용해보자. 생성하려고 보니까 선택지가 생각보다 꽤 많았는데 그중 가장 눈에 띄는 차이는 Web 템플릿과 Boot 템플릿이었다.Web 템플릿은 전통적인 WAR 방식으로 배포하는 프로젝트이고, Boot 템플릿

Spring을 공부하다 보면 한 번쯤 이런 에러를 만나게 된다.또는 Spring Boot 2.6 이상 환경에서는 애플리케이션 실행 중 다음과 비슷한 메시지를 볼 수 있다.처음 이 에러를 보면 단순히 “Bean 주입이 꼬였나?” 정도로 생각할 수 있다. 하지만 Sprin

eGovFrame VSCode Initializr는 VS Code 환경에서 전자정부 표준프레임워크 기반 프로젝트를 쉽게 생성하고, 필요한 코드와 설정 파일을 자동으로 만들어주는 개발 도구다. 조금 더 쉽게 말하면, 전자정부 표준프레임워크 프로젝트를 시작할 때 필요한 초

이번 오픈소스 컨트리뷰션 아카데미에서 내가 맡은 프로젝트는 egovframe-vscode-initializr이다. 처음 이 프로젝트를 접했을 때 가장 먼저 든 생각은 이것이었다.“전자정부 표준프레임워크가 정확히 뭐지?”이름만 보면 조금 딱딱하고 어렵게 느껴진다. 전자정

온라인 쇼핑몰 시스템을 상위 수준 개념을 이용해서 바라보면 아래와 같이 전체 모델들 간의 관계를 이해할 수 있다. 위와 같은 상위 수준 모델 간의 관계를 제대로 이해하지 않고 개별 객체들 간의 관계만을 보고 전체 모델의 관계를 파악하기는 매우 어렵고, 코드를 변경하고

자바에서 컬렉션을 다룰 때 우리는 보통 for, while, Iterator를 사용해왔다. 예를 들어 숫자 리스트에서 짝수만 출력한다고 해보자.이 코드는 굉장히 익숙하다. 리스트에서 값을 하나씩 꺼내고, 조건을 검사하고, 조건에 맞으면 출력한다.이처럼 개발자가 컬렉션

위 4개의 영역 중 표현(Presentation) 영역은 사용자의 요청을 받아 응용(Application) 영역에 전달하고 응용 영역의 결과를 다시 사용자에게 보여주는 역할을 한다. 표현 영역을 통해 사용자의 요청을 전달받는 응용 영역은 시스템이 사용자에게 제공해야 할

온라인 서점을 한번 떠올려보면 장바구니 기능, 쿠폰 적용 기능, 결제 기능, 배송 추적 기능 등 상당히 많은 기능들을 가지고 있다. 이때 온라인 서점이 바로 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인(Domain)에 해당한다.한 도메인은 다시 하위의 여러 도메

리눅스를 처음 배우기 시작하면 낯선 명령어가 한꺼번에 쏟아진다. ls, cd, rm, chmod, ps, kill 같은 명령어를 보다 보면, 뭔가 외워야 할 것이 너무 많아 보여서 막막해지기도 한다. 그런데 막상 리눅스를 조금 사용하다보니, 중요한 건 명령어를 많이 아

Vue에서의 템플릿은 Vue로 화면을 조작하는 방법을 말한다. 템플릿 문법은 크게 데이터 바인딩과 디렉티브로 나뉜다. 하나씩 알아보도록 하자.데이터 바인딩(Data Binding)은 Vue 인스턴스에서 정의한 속성들을 화면에 표시하는 방법이다. 보통 머시태시({{}})

자바스크립트는 싱글 스레드 기반으로, 한번에 하나의 명령만 수행 가능하지만 여러 라이브러리를 통해 비동기 방식으로 여러 가지 일을 처리할 수 있다는 것이다. 자바스크립트를 비동기 방식으로 처리하는 방법은 크게 3가지가 있다.콜백(Callback): 요청이 끝난 후 실

HTML의 목적은 오직 정보의 구조를 명시적으로 표현하는 것 뿐이다. 따라서 HTML만으로는 사용자와 상호작용하는 것은 불가능하다. 그래서 생겨난 것이 자바스크립트다. 하지만 가장 중요한 점을 짚고 넘어갈 필요가 있다. 바로 “자바스크립트는 HTML을 직접 수정할 수

HTML에 스타일을 입히고 싶으면 CSS로 스타일시트를 작성해서 해당 HTML에 적용하면 된다. 스타일시트 구성은 아래와 같다.제일 먼저 스타일을 적용할 대상을 설정해야 하는데, 이때 선택자(Selector)를 이용하면 된다. <style> 태그 안에 스타일시트를

리플렉션(Reflection)은 실행 중(런타임)에 클래스/메서드/필드 정보에 접근해서, 객체를 만들거나 메서드를 호출하거나 값을 읽고, 바꾸는 기능이다. 즉, 코드를 미리 확정하지 않고, 런타임에 구조를 들여다보고 조작하는 기술이라고 이해하면 된다. 자바가 기본으로

일반적으로 클라이언트는 서버에 필요한 것을 요청하고, 서버는 클라이언트의 요청을 처리한다. 근데 여기서 클라이언트가 서버에 바로 요청하지 않고, 제 3자를 통해서 간접적으로 서버에 요청할 수도 있다. 예를 들어, 내가 직접 장을 보러 마트에 갈 수도 있지만, 다른 누군

🤔 템플릿 메서드 패턴의 필요성 로직 2개를 실행하고 실행 시간을 출력하는 간단한 테스트 코드를 작성해보자. 생각해보면 약간 찝찝하다. 왜냐하면 지금 비즈니스 로직을 실행하는 작업과 걸린 시간을 측정하는 작업이 뒤섞여 있기 때문이다. 좋은 설계란 변하는 것과 변하