전체 글

전체 글

    [Git] git commit 되돌리기(로컬, 원격)

    [Git] git commit 되돌리기(로컬, 원격)

    방금 커밋을 날리다가, 잘못해서 build 파일까지 github에 push를 해서 되돌리면서 시도한 해결 방안을 기록한다. 1. git commit 취소하기 - git commit -m "~~"로 로컬에서 git의 내부 인덱스에 파일 및 디렉터리를 저장한 경우 git reset HEAD^ 명령어를 통해 전 커밋으로 이동 가능 현재 origin&master의 HEAD가 "Add HelloController, testCode"를 가리키고 있는데 "gitignore 추가" 커밋으로 HEAD가 이동하며 최상단 커밋을 취소하고 커밋한 파일들을 unstaged 상태로 되돌린다. (add 전) 즉, 제일 최근 커밋이 취소된다고 보면 된다. 이후에 커밋 취소한 파일들을 다시 작업을 해서 git commit -m "~~..

    2. 스프링 부트에서 테스트 코드를 작성하자

    TDD(Test Driven Develop)과 단위 테스트(Unit Test)는 다르다 1. TDD는 테스트가 주도하는 개발로 테스트 코드를 먼저 작성하는 것으로 시작한다. 항상 실패하는 테스트를 먼저 작성 테스트가 통과하는 프로덕션 코드를 작성 테스트가 통과하면 프로덕션 코드를 리팩토링 2. 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미한다. 또한 TDD와 달리 무조건 테스트 코드를 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않는다. 순수하게 테스트 코드만 작성하는 것을 의미. 그렇다면 테스트 코드는 왜 작성해야 할까? 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다. 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이..

    [baekjoon 14503] 로봇 청소기 (구현, 시뮬레이션) (C++)

    https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 로봇 청소기가 청소할 수 있는 영역의 개수를 구해야 한다. 일반 4방향 탐색이 아닌, 기본적으론 반시계 방향 탐색을 하며 여러 가지 규칙이 있다. 현재 위치를 청소한다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향부터 차례대로 인접한 칸을 탐색한다. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. 왼쪽 방향에 청소할 공간이 없다..

    [baekjoon 14719] 빗물 (구현, 스택) (C++)

    [baekjoon 14719] 빗물 (구현, 스택) (C++)

    https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 이런 식으로 빗물이 고인다. 아이디어를 찾는다면 나름 쉽게 풀 수 있다. 1. 시뮬레이션, 구현 5 4 3 5 6 8 7 1 이 있다고 치면 빗물은 좌, 우에 쌓일 것이다. 그러므로 4부터 계산을 해주는데 4는 5와 8 사이에 있고 틈에 총 1만큼 쌓일 것이다. 3은 5와 8 사이에 있고 틈에 총 2만큼 쌓일..

    [baekjoon 19951] 태상이의 훈련소 생활 (누적합) (C++)

    [baekjoon 19951] 태상이의 훈련소 생활 (누적합) (C++)

    https://www.acmicpc.net/problem/19951 19951번: 태상이의 훈련소 생활 2020년 5월 14일 논산훈련소에 입대한 태상이는 첫 총기 훈련에서 가스 조절기를 잃어버리는 중대한 실수를 범했다. 그로 인해, 태상이는 조교들에게 눈총을 받게 되었다. 조교들은 태상이에게 연 www.acmicpc.net 초기 연병장의 상태: 1 2 3 4 5 -1 -2 -3 -4 -5 첫 번째 지시 (1 5 -3)를 수행 한 뒤: -2 -1 0 1 2 -1 -2 -3 -4 -5 두 번째 지시 (6 10 5)를 수행한 뒤: -2 -1 0 1 2 4 3 2 1 0 세 번째 지시 (2 7 2)를 수행한 뒤: -2 1 2 3 4 6 5 2 1 0 초기 상태를 주고, x부터 y까지 덧셈할 값을 주고 최종 상..

    [baekjoon 3190] 뱀 (덱, 시뮬레이션) (C++)

    https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 어렸을 때 해봤던 뱀 게임 문제이다. 뱀은 매 초마다 1. 머리를 방향에 따라 이동한다 2. 머리에 사과가 있다면 뱀의 길이는 하나 늘어난다. 즉, 꼬리 부분이 그대로 있다. 3. 사과가 없다면 한 칸 전진한 것이므로 꼬리 부분 역시 한 칸 이동한다. 명령어는 L(왼쪽)과 D(오른쪽)으로 구성되어 있으며, 게임 시작 시간으로부터 X초가 끝난 뒤에 실행된다. 따라서 1초마다 뱀의 머리를 방향에 맞춰 이동해..

    [baekjoon 2800] 괄호 제거 (스택, 구현, 재귀) (C++)

    https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 주어진 문자열에서 괄호 쌍을 제거해서 만들 수 있는 문자열을 모두 출력하는 문제이다. 괄호가 3쌍이 있다면, 0 1 2 01 02 12 012를 지울 수 있다. 그래서 조합을 통해 숫자들을 만들고, 저 번호에 해당하는 괄호의 쌍을 지우면 되겠다고 생각을 했다. 처음에 아무 생각 없이 (1+(2*(3+4))) 이런 경우만 생각해서 그때마다 괄호의 개수를 세서 괄호를 ..

    스프링 - 의존 관계 주입 방법 4가지

    이제까지 컴포넌트 스캔을 통해서 설정 파일에서 따로 @Bean을 통해서 빈을 등록하지 않고 @Component을 통해 스프링 컨테이너에 등록하는 방법을 정리해보았다. 클래스에 @Component를 붙이고, 의존 관계 또한 해당 클래스 내에서 정의해줘야 하는데 이번엔 이 의존 관계 주입 방법에서 대표적인 4가지를 정리해보려 한다. 1. 생성자 주입 @Service public class AService{ private final ARepository aRepository; @Autowired public AService(ARepository aRepository){ this.aRepository = aRepository; } } - 말 그대로 생성자를 이용한 의존 관계 주입 방법이다. - 스프링이 컴포넌트..