2022/10 26

Java Test 코드 작성 방법과 JUnit

TDD(Test Driven Development, 테스트 주도 개발)란? 테스트 주도 개발이라는 의미를 가진다. 테스트를 먼저 작성하고나서 테스트를 통과할 수 있는 코드를 짜는 것이다. 코드 작성 후, 테스트를 진행하는 일반적인 방식과 차이가 있다. 애자일 개발 방식 중 하나이다. 코드 설계 시 원하는 단계적 목표에 대해 설정하여 진행하고자 하는 것에 대한 결정 방향의 갭을 줄이고자 한다. 최초 목표에 맞춘 테스트를 구축하여 그에 맞게 코드를 설계하기 때문에 의견 충돌을 줄일 수 있다. 테스트 코드를 작성하는 이유는? 코드의 안정성을 높인다. 기능 추가하거나 변경하는 과정에서 side effect를 줄일 수 있다. 해당 코드가 작성된 목적을 명확하게 표현 가능 JUnit이란? Java 진영의 대표적인 ..

카테고리 없음 2022.10.19

Chapter 02. 스프링 시큐리티 OAuth 2.0

2.1 구글 로그인 준비 구글 api 콘솔 새프로젝트 만들기 프로젝트를 만들면 프로젝트를 통해 구글 로그인이 가능하다. 동의 화면: 외부 체크 사용자 인증 정보 oauth 클라이언트 승인된 리다이렉션 URI: http://localhost:8080/login/oauth2/code/google (코드를 받을 수 있는 주소) oauth2 까지는 고정이다. 구글 로그인이 완료 되고 나면 구글 서버에서 나한테 인증 완료됐다는 코드(?)를 돌려준다. 우리는 이 코드를 통해 엑세스 토큰을 요청한다. 엑세스 토큰을 통해 구글 서버에 사용자의 개인 정보를 요청할 수 있다. 라이브러리 설치 yml 파일에 다음과 같이 추가한다. spring: security: oauth2: client: registration: goog..

Chapter 01. 스프링 시큐리티(Spring Security) 기본

1.1 환경 설정 디펜던시에 시큐리티를 추가하면 자동으로 localhost:8080/login, logout 페이지가 자동으로 생성된다. https://github.com/codingspecialist/Sringboot-Security-Basic-V1 쿼리를 복사 sql 적용 dependency mustache: jsp 대신에 머스태치를 이용 가능하다. yml 파일 mvc: view: ... 부분은 삭제한다. 디펜던시에 mustache를 등록하면 디폴트로 mvc에 경로가 잡힌다. 따라서 삭제 가능 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: dr..

[10월 3주차] 알고리즘

1. 흙길 보수하기 - 실버 1 출처 - https://www.acmicpc.net/problem/1911 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1 = idx){ while(arr[i][1] > idx){ idx += l; // 하나 깔아주고 널판지 길이만큼 건너뛴다. ++ans; } } } System.out.println(ans); } } int[] 배열을 정렬하는 메서드를 오버라이드한다. Arrays.sort(배열, "new Comparator....") 까지만 작성해도 자동 완성으로 추천된다. 그럼 1차로는 0열 기준, 다음으로는 1열 기준으로 정렬되도록 구현한다. 현재 지나는 인덱스를 뜻하는 idx를 변수로 만든..

카테고리 없음 2022.10.12

Chapter 07. Git 사용하기

7.1 clone clone: 로컬에서 작업하기 위해 remote repository를 복제해서 내 PC에 local repository로 저장한다. ssh를 선택한다. https 방식은 보안상 취약하다. ssh 방식은 클론 받을 컴퓨터가 이 프로젝트에 대해 접근할 수 있는 권한을 가지고 있는지 체크한다. 7.2 add, commit, push, pull 기본 용어 origin: 원격(깃허브 저장소)에 있는 코드 자체를 의미한다. head: 내가 작업 중인 로컬 브랜치 add: working directory에서 staging area로 등록한다. commit: staging area에서 local 저장소에 등록한다. commit message: commit 할 때 등록하는 메모 push: local 저..

Chapter 06. 저장소(repository)

6. 저장소(Repository) 파일이나 폴더를 저장하는 곳이다. Git 저장소는 파일 변경 이력 별로 구분되어 저장한다. 로컬 저장소(local repository): 내 PC에 파일이 저장되는 개인 전용 저장 공간(git init 으로 초기화하는 것이 로컬 저장소를 생성하는 것이다.) 원하는 폴더 생성 => 해당 폴더에서 git init 명령어 입력 => .git 폴더 생성 확인(로컬 저장소 생성 완료) clone: 원격 저장소에서 복사해와서 local repository를 생성할 수도 있다. 원격 저장소(remote repository): 파일이 전용 서버(GitHub)에서 관리되며 여러 사람이 함께 공유한다. Ex) 로컬 저장소 만들기 1) 원하는 폴더에서 git을 실행시킨다. 2) git in..

Chaper 05. Git 기본 동작 원리

5. Git 기본 동작 원리 5.1 기본 동작원리 working directory: 현재 작업 중인 폴더 자체를 말한다. staging area: Git에 등록하기 전에 변경 사항이 있는 부분을 등록하는 공간, 깃에 등록할(커밋 후보) 파일들이 올라가는 영역 local repository(로컬 저장소): 로컬 Git 프로젝트의 메타 데이터와 데이터 정보가 저장된다. 여기까지는 내 컴퓨터 안에 저장된다. remote repository(원격 저장소): 온라인 상에 존재하는 저장소 (GitHub 서버 상에 존재한다.) 5.2 기본 용어 origin: 원격(깃허브 저장소)에 있는 코드 자체를 의미한다. head: 내가 작업 중인 로컬 브랜치 add: working directory에서 staging area로..

Chapter 04. Git SetUp

4. Git 셋업하기 4.1 사용자 설정 및 세팅 - 이론 로컬에서 사용할 Git 사용자 이메일과 이름을 설정 git config: Git에 관한 설정을 추가, 변경, 삭제하는 명령어 설정 파일 System 설정 파일(모든 시스템 사용자에게 적용) , ex) git config --system Global 설정 파일(한 사용자의 전치 Git Repository에 적용된다.) , ex) git config --global Local설정 파일(하나의 Repository에만 적용된다. ) , ex) git config --local Note) Global Git 사용자 설정과 확인 git config --global user.email "내 이메일 주소 - 깃 아이디" git config --global us..

Chapter 01. Git 정의, Git 설치 방법 ~ Chapter 03. Git 준비하기

1. Git이란? 1.1 Git Git은 형상 관리 도구(Configuration Management Tool, 버전 관리 시스템) 중 하나이다. 효과적 관리: 여러 명시 동시에 작업하더라도 문제 없도록 한다. 소프트웨어의 여러 버전을 동시에 관리 가능 Git사이트에서 reference 메뉴에서 모든 기능을 확인 가능하다. 사용하는 이유는? 프로젝트 할 때, 어떤 기능을 빼고 더하고 고치고 수정하는 과정은 필수이다. 기능을 되돌리게 할 수도 있고 서로 다른 기능의 버전을 유지해야하는 경우도 있다. 1.2 Git 기반의 온라인 서비스 GitHub:프로젝트 소스 코드 클라우드 호스팅 + 특색에 맞는 기능을 제공한다. Bitbucket: Atlassian(Source Tree만든 회사)의 제품들과 연계 Git..

Chapter 10. README

10.1 README 1.10-1 MarkDown(마크 다운) - MarkDown: 일반 텍스트 형식의 문서의 양식을 편집하는 문법 - 누구나 쉽게 읽고 쓸 수 있으며 HTML로 변환이 가능하다. - 특수 기호와 문자를 이용한 매우 간단한 구조의 문법을 사용해 빠르게 작성하고 쉽게 읽을 수 있다. 코드 블럭도 작성 가능하다. - MarkDown 태그의 종류 -> 제목: #, ===== -> 인용: > -> 강조: *, _ -> 링크: [텍스트](주소 "설명 생략가능") -> 이미지: ![텍스트](이미지 주소 "설명 생략 가능") -> 리스트: 1, *, -, + -> 코드 표시: 코드 , 한 줄 띄우고 스페이스 4 칸, ```코드``` -> 가로선: -----, *****, +++++ cf) 마크다운 가..