Web

    [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()을 구현하세요. 과제..

    [Java] GitHub API를 이용한 대시보드 만들기

    요구사항 live-study 대시 보드를 만드는 코드를 작성하세요. 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것. 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것. Github 자바 라이브러리를 사용하면 편리합니다. 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다. github api 사용환경 세팅 1. 깃허브 Token 발급받기 깃허브 홈페이지에서 프로필을 클릭하고 setting, 그 다음 Developer settings로 들어가 줍니다. Personal access tokens 클릭 Generate new token 클릭 내가 알아볼 수..

    [Java] JUnit5

    목차 (클릭시 해당 목차로 이동) JUnit5 세가지 모듈(JUnit Platform + JUnit Jupiter + JUnit Vintage)로 구성된 테스트 라이브러리로, Java 8이상부터 제공합니다. JUnit Platform 테스트를 실행해주는 런처를 제공합니다. JVM에서 테스트를 하기 위한 기반 역할을 합니다. 테스트 프레임 워크를 개발하기 위한 API를 정의합니다. (TestEngine API를 제공) JUnit4 기반 실행 환경을 제공합니다. JUnit Jupiter JUnit5에서 새롭게 탄생한 프로그래밍 모델과 확장 모델의 조합입니다. Jupiter 기반 테스트를 실행하기 위한 TestEngine을 제공합니다. (TestEngine API의 구현체) JUnit Vintage JUnit..

    [Java] 제어문

    목차 (클릭시 해당 목차로 이동) 선택문 (조건문) if문 구성 if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. } if 다음에 괄호()로 조건식을 쓰고 조건식이 참일때 괄호{}로 수행될 문장들을 적습니다. 이때, (조건식)은 무조건 결과가 true or false 이어야만 합니다. if - else 문 구성 if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. } else { // 조건식이 거짓(false)일 때 수행될 문장들을 적는다. } 조건식이 true일때 위 블럭{}, 조건식이 false일때 아래 블럭{} 이 수행됩니다. package javastudy.ch4; public class IfElse { public static void mai..

    [Java] 연산자

    목차 (클릭시 해당 목차로 이동) 연산자 연산자, 연산을 수행하는 기호 연산자 연산을 수행하는 기호 피연산자 연산자의 작업 대상 예시 x + 3 이라는 식이 있을 때, '+'는 두 피연산자를 더해서 그 결과를 반환하는 덧셈 연산자 이고, 변수 x와 리터럴 3은 피연산자 입니다. 산술 연산자 산술 연산자에는 사칙 연산자와 나머지 연산자가 있습니다. 사칙 연산자 + - * / 나머지 연산자 % 특징 1. 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없습니다. (오류 - "ArithmeticException" 발생) 하지만 0.0f, 0.0d로 나누는 경우 오류가 발생하지 않고 Infinity를 반환합니다. System.out.println(3/0); // 실행시, 오류 (ArithmeticExce..

    [QueryDSL] EP5. 실무활용-스프링 데이터 JPA와 Querydsl

    스프링 데이터 JPA 리포지토리로 변경 순수 JPA로 만들었던 리포지토리를 스프링 데이터 JPA가 적용된 리포지토리로 변경합니다. package study.querydsl.repository; import org.springframework.data.jpa.repository.JpaRepository; import study.querydsl.entity.Member; import java.util.List; public interface MemberRepository extends JpaRepository { List findByUsername(String username); } 사용자 정의 리포지토리 스프링 데이터 JPA로 바꾸면서 스프링 데이터 JPA가 제공하지 않는 메서드들은 사용자 정의로 직접 구..

    [QueryDSL] EP4. 실무활용-순수 JPA 리포지토리와 Querydsl

    순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리에 Querydsl을 적용해 봅니다. 리포지토리를 만들고 EntityManager와 JPAQueryFactory를 선언합니다. 생성자주입을 통해 스프링으로부터 EntityManager를 주입받습니다. JPAQueryFactory에 EntityManager를 넣어 생성합니다. (QueryFactory는 EntityManager에 의존하게됩니다.) @Repository public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) {..

    [QueryDSL] EP3. 중급 문법

    프로젝션과 결과 반환 - 기본 프로젝션 대상이 하나일 땐 그 대상의 타입으로 반환하면됩니다. 하지만 프로젝션 대상이 둘 이상일땐 튜플이나 DTO로 반환합니다. 튜플로 반환하는 방법에 대해 알아봅니다. 튜플 여기서 튜플은 프로젝션 대상이 여러개 일때 사용하도록 querydsl이 만들어놓은 객체를 말합니다. 튜플 사용법 querydsl은 프로젝션이 여러개일 경우 튜플을 반환합니다. tuple.get()으로 대상을 꺼내쓸 수 있습니다. @Test public void tupleProjection() throws Exception { //given List result = queryFactory .select(member.username, member.age) .from(member) .fetch(); //wh..

    [QueryDSL] EP2. 기본 문법

    기본 사용 방법 1. JPAQueryFactory 생성시 EntityManager를 넘겨주어야 합니다. @Autowired EntityManager em; JPAQueryFactory queryFactory = new JPAQueryFactory(em) 2. queryfactory .select, .from, .where Member findMember = queryFactory .select(m) .from(m) .where(m.username.eq("member1")) .fetchOne(); 전체코드 package study.querydsl; import com.querydsl.jpa.impl.JPAQueryFactory; import org.assertj.core.api.Assertions; imp..