반응형 전체 글346 JUnit 5 기초 학습과 Stack, 큐 구현 및 테스트 백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다. JUnit5이란 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크가 JUnit이다. 단위 테스트를 작성하는 자바 개발자 93% JUnit을 사용한다. JUnit5의 구조는 아래와 같다. Platform: 테스트를 실행해주는 런처(ide가 JUnit Platform을 지원한다) 제공. TestEngine API 제공. Jupiter: TestEngine API 구현체로 JUnit 5를 제공. 우리는 Jupiter을 사용해 테스트를 진행한다. Vintage: JUnit 4와 3을 지원하는 TestEngine 구현체. JUnit5 시작 본인은 gradle 프로젝트에서 진행했으므로 build.gradle 파일에 아래와 같은 의존성을 추가한다. .. 개발/Java 2022. 5. 18. 제어문(조건문과 반복문) 백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다. 조건문 If if문은 가장 기본적인 조건문이다. 크게 조건식과 괄호로 이루어진다. 만일(if) 조건식이 참(true)이면 괄호{ } 안의 문장들을 수행한다. if (조건식) { //조건식이 true일 때 수행될 코드를 작성한다. } If - else if문에 else블럭이 추가된 것이 if-else문이다. else의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다. if (조건식) { //조건식이 true일 때 수행될 코드를 작성한다. } else { //조건식이 false일 때 수행될 코드를 작성한다. } if - else if 첫 번째 조건식부터 순서대로 평가해서 결과가.. 개발/Java 2022. 5. 17. Git Error: fatal: 관계 없는 커밋 내역의 병합을 거부합니다. fatal: 관계 없는 커밋 내역의 병합을 거부합니다. 위와 같은 오류가 발생했다. 이에 대한 해결법을 기록하고자 한다. 우선 공통된 커밋이 없기 때문에 이런 문제가 발생한다고 한다. 그래서 일단 원격 저장소 (remote)의 커밋들을 가져와야 한다. git fetch --all git reset --hard origin/master git push origin master git fetch -all : 원격 저장소의 모든 커밋을 가져온다. git reset --hard origin/master : git reset --hard를 사용하면 현재 작업 위치인 HEAD의 포인터를 특정 위치로 변경해버릴 수 있다고 한다. 이 명령어를 통해 origin/master로 HEAD의 포인터를 이동시킨 것이다. 그러면.. Git 2022. 5. 14. Github ssh 등록, 여러 계정 사용하기 드디어 미뤄둔 ssh를 이용한 Github와의 연동을 시작해보겠습니다. 필자는 다양한 깃허브 계정을 한 컴퓨터에서 사용하고 싶어서 ssh 등록을 해보겠습니다. 현재 환경은 Mac os입니다. ssh에 대한 개념은 아래 포스팅에서 학습하실 수 있습니다. 시작하겠습니다. https://devdebin.tistory.com/132?category=973762 SSL VS SSH 이번 UMC Sever 파트 AWS EC2 인스턴스 실습을 하면서 유독 자주 보인 이 두 단어에 대해 정리해보겠습니다. 만약 안보셨다면 이 게시글 부터 쭈욱 정주행하시는 것을 추천..!!ㅎㅎ https://devdebin.tistory. devdebin.tistory.com 먼저 .ssh 디렉터리로 이동을 한다. cd ~/.ssh 이제.. Git 2022. 5. 13. 자바 연산자 (Operator) 백기선님이 과거에 진행했던 Java 스터디 3주차 스터디 입니다. 산술 연산자 산술 연산자에는 사칙 연산자(+ ,- ,* ,/ )와 나머지 연산자(%)가 있다. 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선 순위가 높으므로 먼저 처리된다. 피연산자(연산자가 아닌 것, ex 1, 10)가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. boolean 타입을 제외한 모든 기본형 타입에서 사용이 가능하다. 계산하는 값의 결과가 변수의 타입의 범위를 넘어서면 오버 플로우가 발생할 수 있다. 코드 예제 byte a = 10; byte b = 10; byte c = (byte) a + b; //JVM은 기본적으로 32바이트로 계산하므로 a와 b 두 개의 피연산자들을 int형으로 바꾸어 계산한다. .. 개발/Java 2022. 5. 13. 자바 데이터 타입, 변수 그리고 배열 백기선님이 과거에 진행했던 Java 스터디 2주차 스터디 입니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입을 기본형이라고 부르겠다. 자바에는 총 8가지의 기본형이 있다. 우선 기본형은 NULL을 가질 수 없다. 만약 NULL을 쓴다면 Wrapper 클래스를 사용해야 한다. 기본형 변수는 메모리에서 스택 영역에 저장된다. 기본형 분류, 타입 메모리 크기, 기본 값, 범위에 대해 아래와 같이 정리했다. 분류 타입 메모리 크기 기본 값 범위 논리형 boolean 1 byte false false, true 문지형 char 2 byte '\u000' '\u0000' ~ '\uffff' 정수형 byte 1byte 0 -128 ~ 127 short 2byte 0 -32,768 ~ 32,76.. 개발/Java 2022. 5. 12. Java JVM, ByteCode 백기선님이 과거에 진행했던 Java 스터디 1주차 스터디 입니다. 늦었지만 저는 이제 시작해보겠습니다. 1. JVM이란 무엇인가? JVM이란 'Java Virtual Machine'의 약어다. 자바를 실행하기 위한 가상 머신(컴퓨터)이라고 이해할 수 있다. 자바로 작성된 모든 프로그램은 JVM 위에서만 실행된다. 따라서 자바 프로그램을 작동시키기 위해서 JVM은 필수적이다. 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달된다. 그러나 Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행시에 해석(Interpret)되기 때문에 속도가 느리다는 단점을 가진다. 그러나 요즘엔 바이트코드(컴파일된 자바 코드)를 하드웨어의 기계어로 바로 변.. 개발/Java 2022. 5. 12. Spring MVC 2편 - API 예외 처리 (@ControllerAdvice, ExceptionHandler) 본 게시글은 인프런 김영한 선생님 강의 스프링 MVC 2편을 완강하고 배운 것을 남기고자 적은 포스팅입니다. 강의 링크는 아래와 같습니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 본격적으로 시작하겠습니다. SSR(서버 사이드 렌더링, 템플릿 엔진)에서는 4xx, 5xx 같은 오류 페이지만 있으면 예외 처리를 할 수.. 개발/Spring MVC 2022. 5. 11. 개인 프로젝트 API 디자인 API 디자인 책을 본격적으로 읽기 전에 본인이 생각한 API를 디자인해보려고 합니다. 먼저 HTTP 메소드와 URI를 정하겠습니다. 더 자세한 API 명세서는 차후에 더 자세히 작성하겠습니다. 사용자 입장에서 생각하면서 디자인! User 관련 API HTTP Method URI 경로 설명 GET /users/:userId 유저를 조회 POST /users 유저를 생성 PUT /users/:userId 유저 정보를 수정 PATCH /users/:userId 논리적 유저 삭제 Post 관련 API HTTP Method URI 경로 설명 GET /posts 게시글 조회, 페이징을 사용할 예정 POST /posts 게시글 생성 PUT /posts/:postId 게시글 수정 PATCH /posts/:postId.. 프로젝트 2022. 5. 7. 일상 속 사물이 알려주는 웹 API 디자인 - 사용자를 위한 API 디자인하기 TIL (Today I LeTIL (Today I Learned) 2022.05.07 오늘 읽은 범위 2부 사용자를 위한 API 디자인하기 책에서 기억하고 싶은 내용 API는 무조건 사용자들의 목표를 달성하기 위해서 존재합니다. 올바른 입장, 올바른 관점을 선택하는 것이 인터페이스와 API를 디자인하는데 있어서 가장 중요합니다. 작업 방식(내부 동작 원리)에 집중하면 인터페이스가 복잡해진다. 사용자가 할 수 있는 일에 집중해 인터페이스를 단순하게 해라. API는 반드시 컨슈머의 관점에서 디자인되어야 합니다. 프로바이더의 관점이 아니라. API 디자인 시 체크 사항 누가 API를 사용하는가? 무엇을 할 수 있는가? 어떻게 하는가? 하기 위해서 무엇이 필요한가? (입력에 대한 질문) 끝나면 무엇을 반환하는가.. 독서/일상 속 사물이 알려주는 웹 API 디자인 2022. 5. 7. 7주차 실습 - API 코딩 후 배포하기 이번 시간에는 7주차에 진행한 API 코딩 진행과정과 배포 진행 과정에 대해 정리해보겠습니다. 연합 동아리 주최자인 컴공 선배 레포지토리를 클론 했으므로 모든 아키텍쳐를 서술하기는 어려워서 작성한 API와 사용한 클래스 위주로 정리하겠습니다. 이제 본격적으로 시작하겠습니다!! API 코딩 코딩할 API는 유저 삭제 API다. 먼저 논리적인 삭제(상태 컬럼을 변경)가 아니라 실제로 행을 삭제하는 물리적 연산을 진행했다. 따라서 DELETE 메소드를 사용했다. 먼저 Controller, Service, Dao 순으로 나열하겠다. 정말 기초적인 수준의 API로 Validation도 가볍게 진행했다. 우선은 사용할 DTO와 사용자 정의 Exception, 최종 응답 DTO에 대해 알아보자. @Getter @Se.. 대외활동/UMC SERVER 2022. 5. 6. 프로젝트 기본 ERD 다이어그램 설계 우선 프로젝트를 시작하면서 제일 먼저 구현할 기능을 게시판으로 정했습니다. 이에 따라 게시판을 먼저 구현하고 추가적인 기능을 더해가려고 합니다. 툴은 Aquery Tool을 사용했으며, 아래와 같은 엔티티(테이블)를 4개 작성했습니다. M : N 관계를 풀기 위한 중간 테이블도 하나 작성했습니다. Member - 게시판을 사용할 유저들의 정보를 저장할 테이블입니다. Post - 게시판을 사용할 때 게시글을 작성하면 그에 대한 정보를 저장할 테이블입니다. Comment - 게시글이 있으면 댓글을 달아야 소통이 이루어지므로, 댓글에 관련된 데이터를 저장할 테이블입니다. Alarm - 개인적으로 고민을 정말 많이 한 테이블입니다. 결국 소통을 하기 위해서는 게시글에 댓글이 달리거나, 댓글에 대댓글이 달려야하는.. 프로젝트 2022. 5. 3. 이전 1 ··· 13 14 15 16 17 18 19 ··· 29 다음 반응형