목록전체 글
Step-by-Step
처음 프로젝트를 생성할 때 Spring 개념만 잡고 바로 뛰어들었더니 필요해보이는 기능들을 다 넣었는데, Mapper 인터페이스와 DAO 인터페이스 둘 다 생성해놓았다 이후 Mapper 중심으로 개발하다보니 DAO 인터페이스는 사용하지 않게 되었다 내가 선택한 프로젝트 구조는 Controller → Service → Mapper.java → Mapper.xml → DB 이다. Mapper Interface - Mybatis Mapping XML에 기재된 SQL을 호출하기 위한 인터페이스 - Mapping 파일에 있는 SQL을 자바 인터페이스를 통해 호출할 수 있도록 해줌 - Mapper Interface는 개발자가 직접 작성 - Mapper namespace는 패키지 명을 포함한 인터페이스 명으로 작성 ..
Service - Controller가 받은 요청에 대해 알맞는 정보를 가공해서 다시 Controller에게 데이터를 넘겨주는 역할 - Controller에서 요청을 받아 Data를 Mapper에게 넘겨주고 Mapper에 의해 DB에서 받아온 정보를 Controller에게 전달해준다 사용할 Service - User와 Bill을 구분하여 작성 Service Interface 이유 찾아보니 다들 Service 부분은 Interface와 implements한 class로 나눠 작성했는데 그 이유는 다음과 같다 - 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙 중 OCP 원칙을 실현하기 위함 - Interface를 토대로 Service 구조의 뼈대를 만들고, Implements를 통해 Service의 ..
Spring에 대한건 모든게 처음이라 열심히 구글링하고 깃헙에서 검색하면서 배우는 중 ㅠ_ㅠ DTO(Data Transfer Object) - 프로세스 간에 데이터를 전달하는 객체 - Client-Controller-Service-Mapper-DB 계층 간 데이터를 요청하고 받을 때 사용 - Lombok을 이용하여 setter/getter 이용 사용할 DTO - 데이터베이스의 테이블 기준으로 DTO를 작성 (필드 종류, 타입도 동일) - 해당 DTO가 어디서 사용되는지는 다음에 포스팅에서 기록할 예정 1. UserDTO 회원 정보를 담은 DTO package com.energysolution.dto; import lombok.Getter; import lombok.NoArgsConstructor; imp..
Spring의 MVC - 스프링 프레임워크(Spring Framework)는 Model-View-Controller(MVC) 패턴을 사용 - Model : 어떤 동작을 수행하는 코드 - View : 모델을 컨트롤러로부터 가져와 사용자에게 보여줌 - Controller : 모델의 상태 변경 및 화면(View)와 비지니스 로직(Model)을 연결하는 Routing 역할 Controller 구현하기 1. Client가 URI 형식으로 웹 서비스에 요청 보냄 2. Mapping되는 Handler와 해당 Type을 찾는 DispatcherServelet이 요청을 인터셉트 3. @ResponseBody를 이용하여 Client에게 Json 형태로 데이터 반환 Controller 패키지 생성 후 내부에 Controll..
Gradle 프로젝트 생성 build.gradle 설정 application.properties 설정 1. 프로젝트 생성 New > Spring Starter Project Gradle Project / Java 선택 필요한 Dependencies 설정 - 아래에 추가로 설명 ※ 참조 : https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters 프로젝트 전체 구조 생성! 2. Build.Gradle build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' ..
빌드(Build) - 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물(.jar, .war)로 변환하는 과정 또는 그에 대한 결과물 - 소프트웨어 빌드에 있어 가장 중요한 단계들 중 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정 빌드 관리 도구 (Build Tool) - 빌드를 자동화해서 도와주는 도구 - 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구 - 소스코드에서 어플리케이션 생성을 자동화하기 위한 프로그램 - 프로젝트 생성, 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해줌 - 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트를 관리함 ( 빠른 기간 동안 계속해서 늘어나는 라이브러리 추가 및 프로젝트 진행시..
JPA (Java Persistence API; 자바 영속성 API) - 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API - 일반적으로 데이터를 저장할때 RAM(휘발성) → 하드디스크(비휘발성)로 옮김 - JAVA에 있는 데이터를 하드디스크의 DB로 옮겨 영구 저장을 할 수 있도록 해주는 API ※ 영속성(Persistence) : 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성 + 영속성은 파일시스템, 관계형 데이터베이스, 객체 데이터베이스 등을 활용하여 구현 JPA 특징 1. ORM(Object Relational Mapping) 기술 - 객체와 관계형 데이터베이스의 데이터를 자동으로 Mapping(연결)해주..
보호되어 있는 글입니다.
SSH(Secure SHell) - 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이 프로토콜을 사용하는 프로그램을 의미 - 네트워크 상의 다른 컴퓨터에 로그인하거나, 원격 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 프로토콜 - SSH 클라이언트와 SSH 서버의 관계로 상호작용하면서 SSH 서버가 설치된 운영체제를 제어함 - SSH는 암호화 기법을 사용하기 때문에 클라이언트와 서버 간 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다 - 기존의 rsh, rlogin, telnet, ftp 등을 대체하며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공함 - 기본적으로는 22번 포트를 사용함 SSH Key - 서버에..
학교 공지를 보다가 인공지능 혁신공유대학사업단에서 주최한 "클라우드 활용 온라인 특강"이 보였고, 클라우드 기술은 한 번도 사용해본적이 없고, 공지를 보자마자 궁금해서 신청하게 되었다 특강을 듣기에 앞서, 클라우드 컴퓨팅이 무엇인지 제대로 알기 위해 글을 작성하게 되었다 클라우드 컴퓨팅(Cloud Computing) - 사용자의 직접적인 활발한 관리 없이 특히 데이터 스토리지와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요시 바로 제공하는 것 - 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술 - 공유 컴퓨터 처리 자원과 데이터를 컴퓨터와 다른 장치들에게 요청시 제공해준다 - 컴퓨터 네트워크 구성도에서 인터넷을 구름으로 표시하며, 구름은 숨겨진 ..