본문 바로가기

분류 전체보기

(55)
[SpringBoot] Contoller와 View의 데이터 전달 : Thymeleaf 템플릿 1. Contoller Contoller 에서 Model 을 이용하여 데이터를 View 로 전달한다. addAttribute 메서드를 이용하는 데, 첫 번째 파라미터는 변수명, 두 번째 파라미터는 값을 나타낸다. return 하는 값은 View 의 파일명이다. @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!!"); return "hello"; } } 2. hello.html 안녕하세요, 손님 Thyemleaf 템플릿 엔진을 이용하기 위해선 xml 네임 스페이스를 명시해야 한다. html 태그를 열고 xmlns:th..
[Spring Boot] 프로젝트 생성과 초기 설정 방법 Spring Boot 프로젝트 생성하기 먼저 spring boot stater 를 이용해 초기 프로젝트를 생성한다. https://start.spring.io/ 위 주소로 들어가면 스프링 빌드 관리 도구(maven/grandle)를 선택하고 Spring Boot 버전과 Java 버전, 여러가지 라이브러리를 추가하여 새로운 프로젝트를 빠르게 만들 수 있다. 과거에는 이러한 시스템이 없어서 하나하나 설정하는 데만 굉장히 오래 걸렸다고 한다. 위 사진처럼 설정해 주었고 [GENERATE] 를 하면 프로젝트가 .zip 형식으로 다운로드 된다. Dependencies - Spring Web : Spring MVA, Apach Tomcat 등 웹 프로젝트를 하려면 반드시 추가해야 하는 라이브러리 - Thyemlea..
[GitHub] 커밋 메시지(commit message) 작성 요령 제목 커밋 메시지 제목은 docs: Edit README.md to include New Features Use-Cases 와 같이 작성한다. 제목은 타입 라벨을 맨 앞에 붙어 타입(Type): 제목 형식으로 작성한다. 각 타입 라벨은 아래와 같다. feat: 새로운 기능을 추가할 경우 fix: 버그를 고친 경우 docs: 문서 수정한 경우 style: 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 refactor: 프로덕션 코드 리팩터링 test: 테스트 추가, 테스트 리팩터링 (프로덕션 코드 변경 없음) chore: 빌드 테스크 업데이트, 패키지 매니저 설정할 경우 (프로덕션 코드 변경 없음) 제목의 처음은 동사 원형으로 시작하고 첫 글자는 대문자로 작성한다. "Fixed", "Added..
[CSS] flexbox 완전 정리 1. container 속성 값 ▪ display: felx ▪ flex-direction: row, column (-reverse) => 중심축 결정 ▪ flex-wrap: nowrap(기본값), wrap(-reverse) => 아이템이 화면을 꽉 차게 되면 다음 줄로 내려온다. ▪ flex-flow: column nowrap => flex-direction과 flex-wrap을 한 번에 설정 ▪ jestify-content: flex-start(기본값), flex-end, center, space(-around, -evenly, -between) => 아이템 정렬 방법 in main axis ▪ align-content: 위와 동일 => 아이템 정렬방법 in cross axis ▪ align-item..
[JAVA] 다형성(polimorphism)에 대해서 1. 다형성이란? 객체지향 프로그래밍의 3요소(캡슐화, 상속, 다형성) 중 하나인 다형성에 대해서 알아보자. 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미한다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 이를 좀 더 구체적으로 말하자면, 조상 클래스 타임의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. Class Tv { boolean power; int channel; void power() {power=!power;} void channelUp() {++channel;} void channelDown() {--channel;} } Class CaptionTv extends Tv { String..
[Java] 제어자(modifier)에 대해서 - public/protected/default/private (+static) 1. 제어자(modifier)란? 제어자(modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 제어자의 종류 접근 제어자: public, protected, default, private 그 외: static, final, abstract 등 제어자는 하나의 대상에 여러 제어자를 조합하여 사용할 수 있다. 여기서 대상은 클래스나 멤버변수, 메서드를 말한다. 단, 접근 제어자는 한 번에 하나만 사용할 수 있다. 즉, 하나의 대상에 public과 private을 함께 사용할 수 없다. 1. static 제어자 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스변수는 하나..
[Java] 상속 (inheritance)에 대해서 1. 상속(inheritance)의 개념과 장점 상속(inheritance)이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해 코드를 공통적으로 관리하기 때문에 중복을 줄이고 프로그램의 생산성과 유지보수에 크게 기여할 수 있다. class Parent { } class Child extends Parent { // ... } 상속은 위 코드와 같이 표현한다. 서로 다른 클래스가 있고 한 클래스가 extends로 다른 한 클래스를 상속받을 때 두 클래스는 상속 관계에 있다고 한다. 상속을 받는 클래스는 자손 클래스 또는 자식 클래스라고 하며, 상속하는 클래스는 조상 클래스 또는 부모 클래스라고 한다. 위 코드에서 부모 클래스는 Parent, 자식 클래스는 Child가 된다. 조..
[Java] 오버로딩(Overloading)과 오버라이딩(Overriding) 차이 결론부터 말하자면, 오버로딩과 오버라이딩은 명백히 다르다. 오버로딩(Overloading): 기존에 없는 새로운 메서드를 추가하는 것 (new) 오버라이딩(Overriding): 상속받은 메서드의 내용을 변경하는 것 (change, modify) 1. 오버로딩(Overloading) 멤버변수는 같은 클래스 내에서 동일한 이름으로 쓰일 수 없다. 클래스 내에서 구별이 가능해야 하기 때문이다. 그러나 메서드에 한해서는 다르다. 자바에서는 동일한 이름을 가진 메서드를 정의할 수 있다. 단, 클래스 내에서 구별이 가능해야 하기 때문에 매개변수의 개수 또는 타입이 달라야 한다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(mothod overloading)' 또는 '오버로..