BACK 95

[Spring Boot] Gradle 환경에 Swagger 적용하기

build.gradle 에 아래와 같이 추가한다. 최신 버전인 3.0.0을 사용한다. implementation 'io.springfox:springfox-boot-starter:3.0.0' config 파일에 SwaggerConfiguration.java를 작성한다. package com.toy.projectmate.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.Pa..

BACK/SPRING 2022.12.18

Spring Boot Project(1) - 프로젝트 개요

이전에 다른 친구들과 함께 같이 슿프링부트 버킷리스트 공유 사이트를 만든 경험이 있다. 백엔드 여러명끼리 기능을 분담하여 나는 게시판, 댓글 CRUD, 공유 기능, AWS 배포 등을 맡아 담당하였다. 그 때는 스프링부트를 처음 시작하자마자 바로 프로젝트에 들어간거라 많이 미흡했고, 이해보다 기능 완성에 급급했던 것 같다. 이 후에 스프링부트를 좀 더 공부하고, 백엔드는 혼자로써 웹 사이트의 기능을 모두 구현해보고자 하는 마음이 들기 시작해 이 프로젝트를 시작하게 되었다. 주제는 학교 내 팀플의 팀원들을 모집할 수 있는 사이트이고, 전반적으로 웹의 기본적인 기능을 갖춘 사이트를 만들어 보고자 한다. 서버는 내가 스프링 부트로 구현하고, 프론트는 리액트를 사용해 프론트 담당 두분과 함께 작업했다. 1. 프로..

BACK/SPRING 2022.12.15

객체지향 프로그래밍의 특징

객체지향 프로그래밍이란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고,그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체지향 프로그래밍의 장단점 장점 코드 재사용이 용이 기존에 만들어진 클래스를 재사용할 수 있고 상속을 통해 확장 가능 유지보수가 쉬움 수정해야할 부분이 클래스 내부에 있으므로 해당 부분만 수정하면 됨 대형 프로젝트에 적합 클래스 단위로 모듈화시켜 개발 -> 업무 분담하기에 쉬움 단점 처리 속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 많은 시간과 노력이 필요 객체지향 프로그래밍의 특징 1.추상화 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려 내는 것 2.캡슐화 객체의 속성과 메서드를 하나로 묶고 일부를 외부에..

BACK/JAVA 2022.11.13

[JAVA] 자바 프로그램의 구조와 실행 과정

자바의 플랫폼 독립성 자바의 가장 큰 특징은 플랫폼 독립성이다. 플랫폼 독립성이란 하나의 프로그램이 모든 플랫폼(윈도우, 맥 리눅스..)에서 실행 가능한 것을 말한다. 자바의 가상머신 JVM이 이를 가능하게 해준다. 자바의 실행 파일(.class)은 이 가상머신이 사용하는 기계어의 집합으로 구성되어 있어, 가상머신을 이용하면 어떤 플랫폼에서도 .class파일을 실행할 수 있다. JVM 이란? JVM은 JavaVirtual Machine의 줄임말로 wirte once, run erveywhere. 즉 OS마다 따로 코드를 작성해야 하는 번거로움 없이 Java가 플랫폼에 독립적일 수 있게 만들어준다. 그리고 가비지 컬렉션을 통해 자동적인 메모리 관리를 해준다. (가비지 컬렉션: JVM의 메모리 관리 기법 중..

BACK/JAVA 2022.11.11

[JAVA] 디자인 패턴 정리

디자인 패턴이란 ? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 "규약" 형태로 만들어 놓은 것을 의미한다. 1. 싱글톤 패턴 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 하지만 의존성이 높아지고 테스트가 서로 독립적인 단위 테스트를 주로 하는 TDD를 할때 걸림돌이 된다는 단점이 있다. 스프링 컨테이너 객체 관리, DB 커넥션, 스레드 풀 객체 생성시 사용된다. class Singleton{ private static class singleInstanceHolder{ private static fi..

BACK/JAVA 2022.11.11

[JAVA] char단위 입출력- Reader/Writer

HTML 삽입 미리보기할 수 없는 소스 char단위의 입출력은 문자열 입출력을 위해 특화된 기법이다. char단위로 입출력을 수행하는 기본 클래스는 Reader와 Writer추상 클래스다. Reader클래스의 자식 클래스에는 FileReader, BufferedReader, InputStreamReader가 있고, Wirter의 자식 클래스에는 FileWriter, BufferedWriter, OutputStreamWriter, PrintWriter가 있다. 여기서 InputStreamReader와 OutputStreamReader 클래스는 byte단위의 데이터 입출력 클래스인 InputStream과 OutputStream을 char 단위의 입출력 클래스인 Reader와 Writer로 변환하는 클래스다...

BACK/JAVA 2022.10.23

[JAVA] byte단위 입출력- InputStream/OutputStream

자바의 입출력은 크게 byte 단위의 입출력과 char 단위의 입출력으로 나눌 수 있다. 우선 byte단위의 입출력인 InputStream과 OutputStream 추상클래스에 대해 포스팅하고 다음 포스팅에서 char 단위의 입출력을 포스팅한다. InputStream 입력으로 InputStream 추상 클래스가 사용된다. InputStream을 상속해 추상 메서드를 구현한 자식 클래스에는 FileInputStream, BufferedInputStream, DataInputStream이 있다. FileInputStream으로 InputStream 객체 생성하기 // 입력 파일 생성 File inFile = new File("src/files/FileInput-Stream1.txt"); // FileInpu..

BACK/JAVA 2022.10.23

[JAVA] 자바로 파일 관리하기(File 클래스)

자바의 File 클래스는 파일과 폴더를 관리하는 클래스이다. 파일 객체를 생성하는 시점에서는 실제 파일의 존재 유무는 문제가 되지 않는다. 다만 해당 경로에 실제 파일이 존재하지 않을 때 File 객체로 파일을 읽으려고 하면 FileNotFoundException이 발생한다. 파일 객체 생성하기 File tempDir = new File("D:/temp"); // 폴더 객체 생성 if(!tempDir.exists()) // 폴더가 없을 때 tempDir.mkdir(); // 실제 폴더 생성 System.out.println(tempDir.exists()); // true // 파일 객체 생성 File newFile = new File("D:/temp/newFile.txt"); if(!newFile.exi..

BACK/JAVA 2022.10.23
반응형