분류 전체보기 33

스프링부트 시작하기

SpringBoot 개발을 위한 개발도구인 STS4(Spring Tool Suite 4)를 설치해보도록 하겠습니다. STS는 Spring 기반 엔터프라이즈 애플리케이션 개발을 위한 도구입니다. STS 설치에 앞서 기본적으로 Java 설치가 필요합니다. 아직 Java 설치가 안 되었다면 아래 게시물을 참고하여 Java를 설치해주시기 바랍니다. STS에 내장 JRE가 포함되어 있기는 하지만 원하는 버전의 Java를 사용하기 위해 여기서는 OpenJDK 11 버전을 설치하도록 하겠습니다. OpenJDK https://jdk.java.net/java-se-ri/11-MR2 JDK Builds from Oracle Production and Early-Access OpenJDK Builds, from Oracle..

Spring 2023.11.13

컬렉션 프레임워크

컬렉션 프레임워크 컬렉션 프레임워크이란, '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다. 컬레션의은 다수의 데이터, 데이터 그룹을, 프레임워크은 표준화된 프로그래밍 방식을 믜한다. 컬렉션 프레임워크는 컬렉션, 다수의 데이터을 다루는 데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 상당히 덜어 주고 있으며, 또한 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다. 컬렉션 프레임워크의 핵심 인터페이스 컬렉션 프레임워크에서 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. 그리고 인터페이..

Java 2023.11.12

추상클래스

추상클래스란? 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 이완성 설계도는 단어의 뜻 그대로 완성되지 못한 채로 남겨진 설계도를 말한다. 클래스가 미완성이라도 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. ​ 추상클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서 중요한 의미를 갖는다. 새로운 클래스를 작성할 때 아무것도 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나..

Java 2023.11.05

제어자

제어자란? 제어자(modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가저인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 public, protected, default, private 그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근 제어자는 한 번에 네 가지 중 하나만 선택해서 사용할 수 있다. 즉, 하나의 대상에 대해서 public과 private을 함께 사용할 수 없다는 것이다. static - ..

Java 2023.10.29

스프링 프레임워크

하나의 정리된 애플리케이션을 만들기 위해서는 여러 가지를 설정하고 수정해야합니다. 처음부터 다 갖추고 시작하기에는 설정 과정이 어렵고 복잡하고 그 설정이 왜 필요한지 이해하기 힘들 수 있습니다. 따라서 이번에는 스프링 프레임워크 및 MVC 패턴에 대해서 간단히 알아보고 애플리케이션을 개발하는 데 필요한 기본적인 설정들을 진행하겠습니다. 스프링 프레임워크는 무엇인가? 웹 애플리케이션 개발을 위한 다양한 프레임워크가 존재하지만 가장 많이 사용되고 있는 프레임워크를 하나 꼽자면 스프링 MVC 프레임워크를 들 수 있습니다. 스프링 프레임워크는 일반적인 사용자를 위한 웹 애플리케이션부턴 기업 환경의 애플리케이션까지 다양한 범위에서 사용되는 프레임워크입니다. 또한 우리나라에서는 전자 정부 표준 프레임워크로 채택되면..

Spring 2023.10.29

오버라이딩

오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우가 많다. 이럴 때 조상의 메서드를 오버라이딩한다. 2차원 좌표계의 한 점을 표현하기 위한 A클래스가 있을 때, 이를 조상으로 하는 B클래스, 3차원 좌표계의 한 점을 표현하기 위한 클래스를 다음과 같이 새로 작성하였다고 합시다. A클래스의 getLocation()은 한 점의 x, y 좌표를 문자열로 반환하도록 작성되었다. 이 두 클래스는 서로 상속관계에 있으므로 B클래스는 A클래스로부터 getLocation()을 상속받지만, B클래스는 3차원 좌표계의 한 점을 표현하기 위한 것이므로 조상인 A클래스로부터 상속받은 getLocat..

카테고리 없음 2023.10.29

상속

상속의 정의 상속은 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 입니다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 자바에서 상속을 구현하는 방법은 아주 간단하다. 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. 이 두 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 '조상 클래스'라 하고 상속 받는 클래스를 '자손 클래스'라 한다. 조상 클래스 부모(parent)클래스, ..

Java 2023.10.26

사용자을 위한 기능 추가하기

앞에서 제작한 기능에 이어서 사용자 경험을 향상시키는 2가지 기능을 추가로 구현해 보겠습니다. 현재 애플리케이션은 화면이 리액티브하게 동작하기 때문에 할 일을 추가했을 때 목록의 맨 아래에 추가된 아이템이 갑자기 나타납니다. 할 일을 삭제할 때도 마찬가지로 목록에서 아이템이 불쑥 사라지기 때문에 어떤 아이템을 삭제했는지 놓치지 쉽습니다. 도한 할 일에 입력 값이 없는데 +버튼을 누르는 경우 아무 이벤트가 발생하지 않기 때문에 자칫 오류가 있는 애플리케이션으로 착각할 수 있습니다. 그러면 애니메니션과 모달을 이용해 애플리케이션의 완성도를 높여 봅시다. 뷰 애니메이션 뷰 애니메이션은 뷰 프레임워크 자체에서 지원하는 애니메이션 기능으로, 데이터 추가, 변경, 삭제에 대해서 페이드 인, 페이드 아웃등의 여러 가..

Vue 2023.10.26

이벤트 전달을 이용해 Clear All 버튼 기능 개선

이벤트 전달을 이용해 Clear All 버튼 기능 개선하기 TodoList 컴포넌트의 각 할 일 아이템을 삭제하는 로직에도 이벤트 전달 방식을 적용합니다. App.vue 파일과 TodoList.vue 파일의 코드를 다음과 같은 순서로 변경합니다. App 컴포넌트의 clearAll() 메서드는 TodoFooter 컴포넌트의 [Clear All] 버튼을 클릭했을 때 로컬 스토리지의 데이터를 모두 삭제하고 todoItems의 데이터를 비웁니다. TodoFooter 컴포넌트의 clearTodo() 메서드에 구현했던 뷰 데이터 속성 todoItems 배여을 비우는 로직과 동일합니다. 하위 컴포넌트 코드 수정하기 하위 컴포넌트에 있는 [Clear All] 버튼의 클릭 이벤트 메서드 clearTodo()를 아래와 같..

Vue 2023.10.26

기존 애플리키에션 구조의 문제점 해결하기

현재 애플리케이션 구조의 문제점 할 일을 입력했을 때 할 일 목록에 바로 반영되지 않는점 할 일을 모두 삭제했을 때 할 일 목록에 바로 반영되지 않는점 종합해 보면 현재 화면을 4개의 영역으로 분리해 놓았기 때문에 한 영역의 처리 결과를 다른 영역에서 감지하지 못한다는 문제가 있습니다. 이름 아래 그림으로 표현하면 다음과 같습니다. 이 문제점을 해결하는 가장 간단한 방법은 컴포넌트를 4개로 분리하지 않고 한 컴포넌트 안에서 데이터 저장, 조회, 삭제를 모두 처리하는 것입니다. 그러면 컴포넌트 간에 처리 결과를 알려줄 필요도 없고 깔끔하게 뷰의 반응성이 적용되어 할 일 목록이 데이터의 입출력에 따라 항상 최신 상태를 유지합니다. 문제 해결을 위한 애플리케이션 구조 개선 데이터 추가와 삭제가 일어날 때 현재..

Vue 2023.10.26