본문 바로가기

Backend

(37)
스프링부트의 디렉토리(패키지) 구조와 역할 스프링부트의 디렉토리(패키지) 구조와 역할 프로젝트마다 디렉토리(패키지) 이름은 변경되거나 추가될 수 있습니다. 처음 스프링부트를 공부할 때, 무작정 게시판 만들기를 따라했다. 하지만 MVC 패턴에 대해 제대로 알지 못했던 나는 너무나도 생소한 패키지 이름들에 이해가 하나도 안 갔었다. 그 기억을 되살려 간단하게 정리해보려고 한다. Model… Repository… Service… 다 처음 듣는 이름의 디렉토리들이였다. 물론 패키지 이름은 딱 이거다!라고 정해진 게 아니라서 이름이 제각각이지만, 결국 하는 역할은 비슷하다. 이름은 가장 자주 듣는다고 생각하는 패키지 이름으로 써놓았지만 위에서도 말했듯이 절대 절대적이지 않다. 각 패키지가 하는 일 Model(또는 Domain 또는 Post … ) 테이블의..
SpringBoot + JPA + Thymeleaf로 간단한 CRUD + Travis CI 사용해보기 프로젝트 SpringBoot + JPA + Thymeleaf로 간단한 CRUD + Travis CI 사용해보기 프로젝트 SpringBoot & Thymeleaf & JPA (& H2 & lombok) 예제를 사용한 아주 간단한 예제를 찾다가 괜찮은 CR 기능의 예제가 있어서 삭제 기능(D)까지 추가하여 포스팅을 하게 되었다. (*업데이트(U) 기능은 없다.)원본 링크는 맨 아래 참고 문서에서 확인이 가능하다.또한, 소스코드는 깃허브(shinsunyoung/springboot_study_CRUD)에서 확인이 가능하다. 개발환경 IntelliJ IDEA Ultimate JAVA JDK 1.8 SpringBoot 1.5.10.RELEASE Gradle 프로젝트 구조 controller, model, repository..
IoC, DI 개념과 간단한 예제 최근에 다시 공부하며 정리한 내용을 업로드했습니다! 이 글보다는 > https://shinsunyoung.tistory.com/133 < 포스팅을 읽는 것을 추천드립니다. IoC/DI 스프링 공부를 하면 가장 기본적인 내용이자 가장 어려운 내용이지만 중요한 내용인 IoC와 DI에 대해 정리해보았다. 컨테이너란? IoC와 DI를 이해하기 전에 먼저 이해해야 할 개념이 있다. 그것은 바로 '컨테이너'이다. 컨테이너란, 우리 대신 객체의 생성과 소멸 같은 부분을 전담해주는 역할을 한다. 비유를 하자면 주식을 주식 전문가에게 맡기는 것과 같다고 생각하면 된다. IoC란(Inversion of Control)? 그대로 해석을 돌리면 제어의 역전이라고 한다. 제어는 무언가를 조종하고 다루는 것, 역전은 바뀌는 것..
추상화(Abstract) 추상화란? 객체에서 공통된 속성과 행동을 추출하는 것이다. 자바에서 추상화를 이용하는 방법은 추상 클래스 또는 인터페이스가 있다. 추상 클래스(Abstract Class) 추상 메소드를 포함할 수 있는 클래스이다. abstract를 붙여 사용할 수 있다. 부모로서의 사용은 가능하지만 객체로서의 사용은 불가능하다. 추상 메소드(Abstract Method) 본체가 없는 메소드이다. 리턴 타입 앞에 abstract를 붙여 사용할 수 있다. 추상 메소드의 본체는 추상 클래스를 상속받은 후 재정의할 수 있다. abstract class Animal{ // 추상클래스 public abstract void eat(); //추상 메소드 public abstract void sleep(); //추상 메소드 public..
다형성(Polymorphism) 다형성(Polymorphism) 다형성의 의미 자바의 OOP개념 (다형성, 캡슐화, 추상화, 상속) 중 하나 슈퍼클래스의 동일한 메소드라도 구현체에 따라 내부동작을 변하게 하는 것 다형성을 가장 잘 보여주는 개념으로는 오버로딩과 오버라이딩이 있다. Overloading 오버로딩은 하나의 클래스에서 같은 이름의 메소드를 가질 수 있게 한다. (인자는 달라야 함) class test{ public void a(int num){ System.out.println("정수입니다."); } public void a(double num){ System.out.println("실수입니다."); } public void a(String param){ System.out.println("문자입니다."); } } publi..