본문 바로가기

개인 공부

(46)
[Spring Boot]Spring Boot에서 Test Code 작성하기 -1 (개발 환경 세팅 및 Spring Boot 프로젝트 생성) 2021년 2월 졸업을 앞두고 취업을 위해 많은 회사의 채용 공고를 보면서 느낌점이 있다. 특히 우리가 흔히 들어본 회사에서 부터 처음 들어보는 회사까지 대부분의 채용 공고를 보면 공통점이 있다. 그것은 바로 ’TDD’ 혹은 ‘빌드/테스트/배포 자동화 경험’을 가진 사람을 우대한다는 채용 공고이다. 오늘은 Java Spring Boot 환경에서 Test Code을 작성하기 위한 방법에 대해 작성하고자 한다. TDD(Test-driven Development)란? 우선 Test Code을 작성하기 위한 방법을 알기 전 TDD(Test-driven Development)가무엇인지 개념을 잡아야 한다. - TDD란 Test-driven Development의 약자로 테스트 주도 개발이라고 함 - 반복 테스트를..
[백준 알고리즘] 1929번 소수 구하기 오늘은 백준 알고리즘 사이트에 올라와 있는 1929번 문제를 해결하고 글을 작성하고자 한다. 본 문제는 Python3로 풀이를 진행 하였다. 문제 문제을 보면 M~N까지의 숫자 중 소수를 구하는 문제임을 충분히 알 수 있다. 풀이 우선 문제에서 보면 알 수 있듯이 소수를 구하는 코드를 작성하면 된다. 소수를 Python코드로 구현 시 다양하게 구현할 수 있지만, 이 문제의 경우 백준 알고리즘에 나와 있는 분류 중 하나인 방법을 사용해보려고 한다. 백준 알고리즘 홈페이지에서는 이 문제에 대한 분류를 다음과 같이 하고 있다. 따라서 이 문제는 '에라토스테네스의 체'공식을 이용하면 쉽게 풀이할 수 있다. 에라토스테네스란? - 수학에서 소수를 찾는 방법 중 하나이다. 자세한 설명은 위키백과에 자세히 나와 있기 ..
[백준 알고리즘]15596번 정수 N개의 합 오늘은 백준 알고리즘에 있는 15596번을 문제를 해결하고 글을 작성하고자 한다. 본 문제는 Python3을 사용하였다. 문제 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성 하시오. 작성해야 하는 함수는 다음과 같다. Python 2, Python 3, PyPy, PyPy3: def solve(a: list) -> int a: 합을 구해야 하는 정수 n개가 저장되어 있는 리스트 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000) 리턴값: a에 포함되어 있는 정수 n개의 합 (정수) 풀이 본 문제는 주어진 조건에 맞게 함수를 작성하여 풀이를 해야한다. 조건을 살펴보면 함수의 이름과 매개 변수, 리턴값이 주어진다. 코드로 나타내면 다음과 같다. def solve(a): a..
자신의 GitHub 메인 페이지에 자신을 뽐내는 글 적기 우연히 깃허브를 구경하던 중 엄청난 것을 발견하였다. 바로 아래 사진처럼 메인 페이지에 나에 대한 소개 글을 적을 수 있는 것이다. 보통 GitHub을 접속하게 되면 Pin을 표시한 Repositories 혹은 최근 만들어진 Repositories가 메인에 등장하게 된다. 하지만 자신의 GitHub계정 이름과 같은 Repositories을 만들어 README.md을 작성하게 되면 README에 작성한 내용들이 위의 사진처럼 메인에 나오게 된다. 만드는 방법은 엄청나게 간단하다. 이 글에서는 Repositories을 만드는 방법은 적지 않을 것이다. (이 글을 보는 사람이라면 한 번쯤은 Repositories을 만들어 봤을 것으로 예상된다.) 1. 가장 먼저 위에 있는 사진에 표시돼 있는 곳을 확인하여 자..
Github Commit Message 작성 법 작년부터 프로젝트 수업을 진행하면서 Github을 사용하여 버전 관리 및 이슈관리를 진행하고 있다. 최근 들어 프로젝트 수업의 프로젝트의 규모가 커지고 구현 기능들이 점점 많아짐에 따라, 프로젝트 팀 내에서 기능별 커밋을 하기로 정하였다. 하지만 나는 Commit message를 작성하는 방법은 "일자(기능)" 혹은 기능만을 한글로 작성해 왔다. 아래 사진에 있는 Commit message만 봐도 어떠한 내용이 구현되었는지 알 수 없다. (프로젝트 기능 연습용이었지만, 해당 레파지토리가 프로젝트에 그대로 사용될 줄 몰랐다. ) 또한 Github는 전세계 개발자들이 코드를 공유하는 곳이기 때문에 한글로 작성된 Commit message의 경우 한글을 모른다면, 이해할 수가 없다. 그렇다면 가장 올바른 Co..
[백준 알고리즘] 10951번 Python A+B -4 해당 글은 Python으로 백준 알고리즘 10951번 문제를 풀고 성공한 코드이다. (https://www.acmicpc.net/problem/10951) 이 문제의 경우 다른 반복문 문제들과 다르게 몇번 진행해야하는지 정해져 있지 않다. 따라서 단순 출력만 해주는 코드를 작성할 경우 런타임 에러를 발생한다. 우선 아래와 같이 보이는 코드형태로 제출 할 경우 무한반복으로 진행 되기 때문에 런타임 에러가 발생한다. import sys while True : a,b = map(int, sys.stdin.readline().split()) print(a+b) 따라서 이러한 문제를 해결하기 위하여 예외처리를 사용하여 코드를 작성하였다. # 이 문제는 문제상으로 봤을 경우 무한 반복하는 문제이지만 예외처리를 안해..
[백준 알고리즘] 3052번 Python 나머지 해당 글은 Python으로 백준 알고리즘 3052번 문제를 풀고 성공한 코드이다. 이 문제에서 Python을 이용하여 문제를 풀 경우 set이라는 집합 함수를 사용하여 len으로 list의 길이를 구하여 성공하였다. (https://www.acmicpc.net/problem/3052) remainder = [] # 42로 나눗값을 리스트 형식으로 하여 저장 for i in range(10) : # 10개를 입력 받아 진행함 num = int(input()) remainder.append(num % 42) # 42로 나눗값을 append를 사용하여 리스트에 추가함 remainder = set(remainder) # 교집합으로 같은 것끼리 묶음 print(len(remainder)) # 교집합으로 묶은 것을..
[백준 알고리즘] 1546번 Python 평균 해당 글은 Python을 이용하여 백준 알고리즘 1546번 문제를 풀고 성공한 코드이다. (https://www.acmicpc.net/problem/1546) cnt = int(input()) # 과목수 카운트 sum_score = 0 score = list(map(int, input().split())) #점수를 list형식으로 입력 받음 max_score = max(score) # 최대 점수 for i in range(cnt) : score[i] = score[i]/max_score*100 sum_score += score[i] avg_score = sum_score / cnt print(avg_score)