전체 글

전체 글

    [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에서만 실행시킬때 사용합니다..

    [ClassFlix] EP 17. QueryDSL 도입 (페이징, 정렬)

    Querydsl 도입 계획 build.gradle 작성, JPAQueryFactory등 Querydsl 도입 기존에 있는 jpql을 querydsl로 바꾸기 홈 화면에서 페이징, 정렬 기능 (대량 강의 데이터 추가, ddl 설정 변경) 강의 검색기능추가 (페이징, 정렬기능) Querydsl 도입 build.gradle, Q-type파일 생성 기존에 작성했던 QueryDSL 설정 포스팅을 참고하여 설정합니다. 2021.06.08 - [Web/QueryDSL] - [QueryDSL] EP1. QueryDSL 설정 [QueryDSL] EP1. QueryDSL 설정 QueryDSL 사용에 앞서 설정을 해주도록 하겠습니다. 기본적으로 QueryDSL은 start.io 에서 dependency를 제공하지 않기 때문..

    [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; ..

    [Java] 클래스

    목차 (클릭시 해당 목차로 이동) 클래스 정의하는 방법 클래스 객체를 정의해 놓은 것 객체의 설계도 또는 틀 이라고 이해하면 됩니다. *객체 클래스에 정의된 내용대로 메모리에 생성된 것 클래스 정의하는 방법 class 클래스명 {} class의 기본 접근 제어자는 public 입니다. 생략해주면 기본으로 public이 붙지만 되도록 직접 접근제어자를 붙여주는 것이 좋습니다. 한 java파일에는 하나의 public 클래스만 존재하도록 합니다. 클래스에는 public, default만 붙일 수 있습니다. public class Tv {} public class Tv{} 객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있습니다. 이 구성요소를 객체의 멤버라고 합니다. 속성 = 멤버변수 기능 = 메서드 메서..

    [Java] LinkedList, Stack, Queue

    목차 (클릭시 해당 목차로 이동) 요구사항 과제 2. LinkedList를 구현하세요. LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. ListNode remove(ListNode head, int positionToRemove)를 구현하세요. boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요. 과제 3. Stack을 구현하세요. int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. 과제..

    2021 부스트캠프 6기 지원후기

    목차 (클릭시 해당 목차로 이동) https://boostcamp.connect.or.kr/guide_wm.html 부스트캠프 개발자의 지속 가능한 성장을 위한 학습 커뮤니티 boostcamp.connect.or.kr 네이버 커넥트재단에서 운영하는 개발자 양성 프로그램에 지원했습니다. 휴학후 꼭 하고싶던 프로그램중 하나였기 때문에 열심히 준비해보았습니다. 서류접수 서류접수시에는 자기소개서를 작성해야 합니다. 문항 [필수] 어떤 계기로 개발자를 꿈꾸게 되었나요? 개발자로 성장하는데 부스트캠프를 선택한 이유와 부스트캠프에서 이루고자 하는 목표를 함께 작성해주세요. (500자 내외) [필수] 본인이 소프트웨어 개발을 더 잘하고 싶어서 참여했던 교육이나 시도했던 경험을 적어주세요. 왜 그러한 교육이나 경험을 선..