목록분류 전체보기 (65)
개발그래머

목표 자바의 예외 처리에 대해 학습하세요 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바의 예외처리 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황을 나타내는 객체 이러한 예외상황을 적절히 처리하고 프로그램의 안정성을 높이기 위해 중요함 try { // 예외가 발생할 수 있는 코드 } catch (ExceptionType1 e1) { // 예외 처리 코드 } catch (Exceptio..
목표 자바의 인터페이스에 대해 학습하세요 학습할 것(필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 클래스의 계약 또는 청사진으로 작용하는 참조 유형 구현을 갖지 않는 추상 메소드의 집합을 정의하며 해당 인터페이스를 구현하는 클래스가 제공해야 하는 메소드를 정의함 다른 클래스를 작성할 때 기본이 되는 틀을 제공하며 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스 다중상속 자식 클래스가 여러 부모 클래스를 상속받으면 다양한 동작을 수행할 수 있지만 클래스를..
1. JwtProvider의 책임을 강화하라public class JwtProvider { private final JwtProperties jwtProperties; public JwtDto createTokenDto(PrincipalDetails principalDetails){ // 생략 return new JwtDto(); } public String createRefreshToken() { // 생략 return refreshToken; } public String createAccessToken(String username, Long id, String roleType){ // 생략 re..
목표 자바의 패키지에 대해 학습하세요 학습할 것(필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 java.lang.String java.lang = 패키지 이름 String = 클래스 이름 클래스와 인터페이스의 집합 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있음 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있음 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미함 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있음 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는..

목표 자바의 상속에 대해 학습하세요 학습할 것(필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 public class ParentClass { private int parentNum = 10; int parentNum2 = 20; public int parentNum3 = 30; protected int parentNum4 = 40; public String sameName = "same parent"; private String parentCtorStr; public ParentClass(String parentCtorStr) { this.parentC..

과제(Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node라는 클래스를 정의하세요 int value, Node left, right를 가지고 있어야 합니다 BinaryTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요 DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요 이진 트리(binary tree) 자식노드가 최대 두 개인 노드들로 구성된 트리 정이진트리, 완전이진트리, 균형이진트리 등 이진 탐색 트리(binary search tree) 효율적인 탐색, 삽입 및 삭제 연산을 가능 이진 탐색 특성에 따라 키가 정렬되어 있어 트리 내에서 요소를 찾는 것이 용이합 데이터베이스, 검색 엔진, 다양한 알고리즘..
목표 자바의 Class에 대해 학습하세요 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스 정의하는 방법 객체 지향 프로그래밍(OOP, Object Oriented Programming) 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심임 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍 객체를 만들어 내기 위한 설계도와 같은 개념을 클래스(class)라고 함 클래스(class) 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성 필드(field)란 클래스에 포함된 변수(variable)를 의미 -..
과제 과제0.JUnit5 학습하세요 인텔리J, 이클립스, VScode에서 Junit5로 테스트 코드 작성하는 방법에 익숙해질 것 이미 JUnit 알고 계신분들은 다른 것 아무거나! 더 자바, 테스트 강의도 있으니 참고하세요~ JUnit5 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform = 테스트를 실행해 주는 런처 제공, TestEngine API 정의 JUnit Jupiter = TestEngine API 구현체로 JUnit5 제공, 테스트를 작성하고 확장을 하기 위한 새로운 프로그래밍 모델과 확장 모델의 조합 JUnit Vintage = 하위 호환성을 위해 JUnit4와 JUnit3을 지원하는 TestEngine 구현체 ..