web/JAVA & SpringBoot

web/JAVA & SpringBoot

Spring 주요 특징 정리

1. 스프링 프레임워크는 어떤 특징 혹은 장점을 가지고 있나요? 1. 제어의 역전(Inversion of Control, IOC) 제어의 역전이란 개발자가 작성한 객체나 메소드의 제어를 개발자가 아니라 외부에 위임하는 설계 원칙을 말한다. 프로젝트를 프레임워크가 제어하고 개발자가 코드의 일부분이 된다는 뜻으로 이러한 특징 덕분에 개발자는 핵심 비지니스 로직에 더 집중할 수 있는 장점이 있다. 2. 확장성과 유지보수 용이 스프링은 각 기능별로 분리하고 모듈화를 하였기에 추가적으로 확장하기에 용이하고 유지보수를 함에 있어서 가독성이 높아 유리하다. 3. 관점지향 프로그래밍(AOP : Aspect-Oriented Programming) 여러 객체에서 공통적으로 사용하고 있는 기능을 분리해서 모듈화하고 재사용하..

web/JAVA & SpringBoot

스프링 빈(Spring Bean)

스프링 빈 스프링 빈이란 Spring IOC 컨테이너가 관리하는 자바의 객체이다. 여기서 IOC란 제어의 역전이라는 말로 프레임워크와 관련이 있는 단어이다. 내가 따로 정리했던 내용을 가져와 보자면 즉 제어의 역전이란 프레임워크가 프로젝트를 직접 제어를 한다는 뜻이고 스프링 빈이란 프레임워크가 직접 제어를 하는 각각의 객체라고 볼 수 있다. 스프링 빈의 모습 스프링부트에서는 Controller와 Service, Repository를 선언할 수있는 컴포넌트가 있는데 그것이 각각 @Controller, @Service, @Repository 어노테이션이다. 이 어노테이션으로 선언되면은 해당 계층은 최우선적으로 스프링 컨테이너로 올라가게 되고 스프링 컨테이너안에서 프레임워크의 제어를 받는다. 스프링 빈이란 스..

web/JAVA & SpringBoot

MVC 패턴이란

MVC 패턴이란 Model - View - Controller의 약자로 애플리케이션을 세 가지 역할로 구분한 개발 방법론 이러한 역할의 분리는 가독성 면에서 뛰어나며 서로의 영향이 없기 때문에 쉽게 고칠 수 있는 유지보수의 면에서도 장점이 있다. 이러한 MVC 패턴은 개발을 할때 어떻게 나눌 것인가에 대한 하나의 방법론이다. 즉 어떠한 구조로 어떠한 식으로 동작하도록 짤것이냐라는 것이 mvc의 핵심 MVC 처리 방식 1. 사용자가 요청을 보내면 (ex 게시글 생성) Controller가 그 요청을 받는다. 2. 해당 시스템의 비즈니스 로직(service)을 처리 한 후 그 결과를 Model로 보낸다. 3. Model에 결과가 저장되고 그 결과를 바탕으로 view를 제어하여 사용자에게 전달한다. Contr..

web/JAVA & SpringBoot

Dto vs Entity

DTO란 Data Transfer Object의 약자로 각 계층간에 데이터 교환을 위한 객체이다. view에서 controller로 controller에서 service로 모두 dto를 거쳐서 데이터의 교환이 이뤄진다. Dto는 getter/setter 메소드만을 가지며 로직 또한 가지지 않는 순수한 데이터 객체로 dto는 데이터 전송만을 위한 객체이다. 그러면 Entity란 DB의 테이블과 매칭이 될 클래스를 뜻한다. 즉 테이블과 직접적으로 링크가 될 클래스로 @Column이나 @Id를 통해 직접적으로 db테이블과 매칭을 시켜주는 클래스이다. 선언은 @Entity로 한다. DTO의 형태 @Getter @AllArgsConstructor @NoArgsConstructor public class Board..

web/JAVA & SpringBoot

[Spring] Test case 및 단축키 만들기

객체지향 프로그래밍의 4가지 특징이 있다. 캡슐화, 추상화, 상속화, 다형화 이러한 특징을 적용한 설계의 난이도는 어려울 수 밖에 없는데 각 로직 별로 test case를 잘 만들어 놓지 않으면 어디서부터 손을 대야할지 모르는 순간이 올지도 모른다는 생각이 들어서 처음배울때부터 test case를 잘 만드는 연습을 하기로 했다. @Test public void TEST() { // given 상황이 주어진다. // when 형태로 실행을 했을때 // then 결과가 나온다. } test case는 위와 같은 형태로 작성하는 것이 룰이다. 구현 했던 간단한 회원가입 코드를 덧붙여 설명을 해보자면 @Test void 회원가입() { // given Member member = new Member(); mem..

web/JAVA & SpringBoot

[JAVA] 반복문의 순서가 i j k인 이유

알고리즘 문제를 풀면서 3중배열을 사용했는데 자동으로 생성되는 변수의 순서가 i j k 순서로 나가는 것을 봤는데 왜 순서가 하필 a b c도 아니고 i j k 일까 라는 고민이 생겼다. 왜 i를 먼저 쓸까? 일단 먼저 순서는 최고의 고급 프로그래밍 언어 중 하나인 Fortran에서 그렇게 사용했다. Fortran은 1950대말에 만들어진 언어로 과학계산용으로 주로 사용됐다. 그러한 만큼 수식을 간단하게 표현 할 수 있고 수치 계산이 빠르다는 특징이 있는 언어이다. 그럼 왜 fortran에서 i를 먼저 썼을까? 960년대에 저는 FORTRAN 2로 프로그래밍했습니다. 구문에는 변수의 유형을 선언하는 방법이 없었기 때문에 i부터 r까지의 문자는 정수용으로 예약되었고 나머지 문자는 부동 소수점 숫자용이었습니..

web/JAVA & SpringBoot

[JAVA] 정규 표현식

정규 표현식 문법 예시 1 test.replaceAll("[.]+", "."); 설명 : test변수의 마침표(.)가 연속될 경우 (많을 경우) 마침표(.) 한개로 치환 문자클래스 예시 test.replaceAll("[^a-z0-9_.-]", ""); 설명 : test 변수의 소문자a-z까지, 숫자0~9까지, _.- 를 제외하고 다른 글자를 ""으로 치환한다. 미리 정의된 문자 클래스 출처 : https://page-view.tistory.com/10 출처 : https://gh402.tistory.com/54 정규표현식 사용 예시 문자열에서 숫자를 포함하고 있는지 여부 확인 String number = "Qatar2022"; boolean answer = number.matches("[0-9]+"); ..

web/JAVA & SpringBoot

[JAVA] map이란

Map이란 Key와 value를 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스이다. key는 중복될 수 없지만 value는 중복이 가능하다. 그러면 기존에 key와 value가 중복된 값을 저장한다면 기존의 데이터는 사라지고 마지막에 저장한 값이 남아 있게 된다. Map은 인터페이스로 여러 클래스를 구현하는데 HashMap, LinkedHashMap, sortedMap,TreeMap등이 있다.

3hoon
'web/JAVA & SpringBoot' 카테고리의 글 목록 (3 Page)