Web

    EP1. 타임리프 Thymeleaf

    toc링크기능이 추가가 안되어있어서 필요한 부분은 Ctrl+F 로 찾아서 보시면 됩니다~ 목차 타임리프 사용 선언 텍스트 - text, utext - Escape HTML 엔티티 springEL 표현식 지역변수 선언 기본 객체들 - 편의 객체 유틸리티 객체 - 자바8 날짜 URL 링크 리터럴 - 리터럴 사용 예시 연산 비교연산 조건식 - Elvis 연산자 No-Operation 속성 값 설정 속성 설정 - 속성 추가 - checked 처리 반복 - 반복 상태 확인 조건부 평가 주석 - HTML의 주석 - 타임리프의 주석 블록 자바스크립트 인라인 - 자바스크립트 인라인 each 템플릿 조각 템플릿 레이아웃 1 템플릿 레이아웃 2 타임리프 사용 선언 타임리프를 사용하기 위해서는 타임리프 선언을 해야합니다. ..

    [Java] 인터페이스

    학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스의 정의 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록); } 인터페이스 멤버의 제약사항 - 모든 멤버변수는 public static final이어야 하며, 이를 생략할 수 있다. - 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다. 단, static 메서드와 디폴트 메서드는 예외 예시) ..

    [Java] brew로 자바 특정버전 설치하고 적용하기

    brew로 최신 Java를 설치하려면 아래와 같이 치면 됩니다. $ brew install --cask java 하지만 여러 이유로 최신버전이 아닌 다른 특정버전을 설치해야할 경우가 있습니다. 자바 특정버전 설치방법 brew 업데이트. brew를 쓰기전에 항상 업데이트먼저 하시는 것을 추천드립니다. $ brew update 원하는 jdk버전 적용해서 설치 $ brew install --cask adoptopenjdk8 설치완료 환경변수 설정 새로운 버전의 jdk를 설치했음에도 java -version을 해보면 원래 쓰던 jdk 버전이 나옵니다. 이 이유는 클래스패스 (환경변수) 설정이 되어있지 않기 때문입니다. 저는 zsh를 사용하기 때문에 .zshrc에 Path를 적어주겠습니다. (bash를 사용하시는..

    [Java] 패키지

    Pakage 패키지란, 클래스의 묶음입니다. 패키지에 클래스나 인터페이스들을 포함시킬 수 있으며, 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있습니다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 다른 개발자가 개발한 클래스와 자신의 클래스의 이름이 충돌하는 것을 피할 수 있습니다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리입니다. 사실 클래스의 이름은 패키지까지 포함한 이름입니다. 그래서 String 클래스의 실제 이름은 java.lang.String 입니다. 패키지 특징 (주의사항) 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용한다. 모든 클래스는 반..

    [Java] HashSet과 HashMap에서 equals 오버라이딩시 hashCode도 재정의 해주어야 하는 이유

    자바의 최상위 클래스인 Object 클래스에는 equals과 hashCode 메서드가 있습니다. Object 클래스에 대한 설명은 아래링크의 글에서 맨 아랫부분을 참고하세염 2021.07.13 - [Web/Java] - [Java] 상속 [Java] 상속 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속 상속이란, 기존의 ksabs.tistory.com Object의 equals는 객체의 주소를 비교하여 같은 객체인지 확인합니다. 그렇다면, 만약에 이름과 나이가 같다면 "같다"고 인식해줘야 하는 객체 Person이 있다고 생각해봅시다. p..

    [Spring] main과 test에서 따로 동작하는 클래스 만들기

    개발을 하다보면 main에서만 실행되고 test에서는 실행되길 기대하지 않는 메서드(나 클래스)가 있을 수 있습니다. main 과 test에서 따로 동작하는 클래스를 제작하는 방법에 대해 다뤄봅니다. 방법 1. application.yml 을 main과 test에 따로 만들고 spring.profiles.active 이름을 다르게 지정합니다. main의 application.yml spring: profiles: active: local ... test의 application.yml spring: profiles: active: test ... 2. main에서만 실행되길 기대하는 클래스에 @Profile("local")을 붙여줍니다. 보통은 개발단계에서 InitDB를 main에서만 실행시킬때 사용합니다..

    [IntelliJ] [Java] UnsupportedClassVersionError 해결

    에러상황 Exception in thread "main" java.lang.UnsupportedClassVersionError:dongho/classflix/ClassflixApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 원래 프로젝트 클래스파일은 55.0 버전으로 컴파일되어있지만 현재 컴파일러 버전은 52.0 이라서 로딩이 불가하다는 에러입니다. 버전이 55.0, 52.0 이라고 되어있어서 헷갈릴 수 있는데, Java 버전은 이렇..

    [IntelliJ] Gradle 프로젝트 불러올때 에러해결

    에러상황 가끔씩 IntelliJ에서 기존의 프로젝트를 불러올때 spring boot annotation들이 적용이 안되고 빨간불이 들어올 때가 있습니다. 해결하고나서 포스팅하는거라 적용이 안됐을 때의 자료화면이 없습니다. ㅠ 나중에 또 같은 에러가 뜰 때 해당 에러 화면 사진 올리겠습니다. 그래도 아마 프로젝트 불러왔을때 원래 되던 스프링부트가 안될경우는 아마 이 해결방법으로 해결이 될 것입니다! 해결방법 해결은 간단합니다. 프로젝트 디렉토리에서 .idea 디렉토리를 삭제하고 다시 프로젝트를 import 하면 됩니다. 그리고 인텔리제이를 종료한 뒤, 다시 build.grade을 open해줍니다. 그러면 .idea가 없기때문에 아래와같이 gradle 프로젝트를 새로 임포트할 수 있는 화면이 뜹니다. 여기서..

    [Java] 상속

    학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 구현방법 자바에서 상속을 구현하는 방법은 간단합니다. 새로 작성하고자 하는 클래스의 이름뒤에 상속받고자 하는 클래스의 이름을 'extends'와 함께 써주면 됩니다. class Chiled extends Parent { // ... } 이 두 클래스는 상속관계에 있다고 하며, 상속해주는 클래스 (Parent) 를 부모(parent)클래스 상위(super)클래스 기반(base)클래스 라고 합니다. 상속 받는 클래스 (C..

    [Java] Node와 BinaryTree 구현

    목차 (클릭시 해당 목차로 이동) 과제 int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. Node.class package javastudy.ch5.assignment; public class Node { private int value; private Node left; private Node right; public Node() { this.left = null; this.right = null; ..