목록Development (561)
컴공생의 다이어리
[MyBatis] parameterType, resultType에 내부 클래스(inner class) 사용 MyBatis의 paramterType과 resultType에서 내부 클래스를 사용하는 방법에 대해 정리하고자 한다. 우선 paramterType과 resultType에서 내부 클래스를 사용하기 위해서는 아래와 같이 내부 클래스가 static으로 선언되어 있어야 한다. public class Outer { public static class InnerA { // ... } public static class InnerB { // ... } } 그리고 MyBatis에서 사용시 아래와 같이 $를 사용해서 내부 클래스를 타입으로 설정하면 된다. 점(.)은 경로를 타고 갈 때 사용하고 $는 inner cl..
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 - MySQL SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(HISTORY_ID) AS RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE DATE_FORMAT(START_DATE,'%Y-%m') BETWEEN '2022-08' AND '2022-10' GROUP BY CAR_ID HAVING COUNT(CAR_ID) >= 5 ) AND DATE_FORMAT(START_DATE,'%Y-%m') BETWEEN '2022-08' AN..
[js] 현재 위치 받아오기 - Geolocation API 자바스크립트에서 사용자의 현재 위치 정보를 브라우저에게 요청할 수 있는 방법으로 Geolocation API가 있다. 브라우저가 지원하는 Geolocation API는 navigator.geolocation으로 정의되어 있다. 현재 위치 받아오기 navigator.geolocation.getCurrentPosition() 메서드를 통해 현재 위치 정보를 받아올 수 있다. 메서드를 통해 현재 위치를 가져오는 것에 성공하면 GeolocationPosition 객체를 첫번째 콜백 함수의 매개변수로 전달하고 실패하면 두번째 콜백함수에 GeolocationPositionError 객체를 매개변수로 전달한다. 아래는 navigator.geolocation..
[GitHub Action] Secrets로 환경 변수 관리 GitHub Action의 workflow 안에 api 키, 관련 비밀번호 등 환경 변수를 숨기고 싶은 경우가 있을 것이다. 이를 숨기기 위한 방법으로 Secrets를 활용하는 것이 있다. 오늘은 이 방법에 대해 정리해보고자 한다. 과정 1. GitHub Action의 secrets을 등록하고자 하는 깃허브 저장소의 Settings>Security>Secrets and variables>Actions 메뉴에 들어간다. 2. New repository secret 버튼을 클릭한다. 3. Name에는 환경 변수의 키(변수명)에 해당하는 값을 입력하고 Secret에는 키에 해당하는 값을 입력한다. 4. 앞서 secret으로 저장한 환경변수에 대해 w..
백준 16928번 : 뱀과 사다리 게임 (문제 바로가기) 내 코드 import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) # N: 사다리의 개수, M: 뱀의 개수 board = [0] * 101 # 사다리와 뱀의 위치를 저장할 리스트 for _ in range(N + M): x, y = map(int, input().split()) board[x] = y # 사다리와 뱀의 위치를 저장 visited = [0] * 101 # 방문 여부를 저장할 리스트 queue = deque([1]) # 시작점 while queue: x = queue.popleft() if x == 100: # 도..
[HTML] img 태그 이미지 로드 실패시 대체(디폴트) 이미지 img 태그로 src 이미지 로드에 실패한다면 엑스 박스가 나오는데 따로 처리해주지 않는 이상 alt 속성에 넣은 텍스트를 보여준다. 이미지 로드 실패에 대해 대체 이미지를 적용한다거나 이미지를 숨기는 방법을 사용할 수 있다. 이 글에서 2가지 방법에 대해 짧게 정리해보려고 한다. 대체 이미지 onerror 속성에 대체이미지 경로를 아래와 같이 넣어주면 된다. 이미지 숨기기 onerror 속성에 아래와 같이 this.style.display='none'으로 설정을 하면 이미지 로드 실패시 이미지를 숨긴다. https://pingfanzhilu.tistory.com/entry/HTML-img-%ED%83%9C%EA%B7%B8-%EB%8C%8..
[GitHub Action] Matrix Strategy 동일한 작업을 다양하게 실행시키고 싶다면 Matrix Strategy를 사용하면 된다. 여러 운영체제에서 테스트를 돌린다던지 여러 버전을 사용하여 테스트를 진행할 수 있다. jobs..strategy.marix 하위에 job을 수행하고자 하는 matrix를 정의하면 정의된 변수들의 가능한 모든 조합의 수만큼 Job을 실행한다. step에서 matrix 변수를 사용할 때는 ${{ matrix.변수명 }} 의 형태로 사용해주면 된다. 아래 예시는 node-ver이 14, 16, 18인 경우에 대해서 node-version을 설정하여 돌리는 Job들을 수행한다. jobs: test: runs-on: ubuntu-latest strategy: matrix..
백준 16954번 : 움직이는 미로 탈출 (문제 바로가기) 내 코드 import sys from collections import deque input = sys.stdin.readline wall_pos = set() # 벽 위치 for i in range(8): temp = input().rstrip() for j in range(8): if temp[j] == '#': wall_pos.add((i, j)) queue = deque([(7, 0)]) # 캐릭터 시작 위치 넣기 result = 0 direction = [(i, j) for i in range(-1, 2) for j in range(-1, 2)] # 이동할 수 있는 모든 방향 while queue and wall_pos: temp = s..
백준 16637번 : 괄호 추가하기 (문제 바로가기) 내 코드 N = int(input()) data = list(map(lambda x: int(x) if x.isdigit() else x, input())) result = -int(1e9) def calculate(num1, num2, s): # 연산자 s에 따라 계산처리 if s == '+': return num1 + num2 elif s == '-': return num1 - num2 elif s == '*': return num1 * num2 def dfs(idx, prev): global result if idx >= N: # 연산이 끝났을 때 result = max(result, prev) # 최댓값 갱신 return if idx + 3 <..
Java 배열 일괄 초기화 - Arrays.fill() 자바에서 배열의 모든 값을 지정한 값으로 초기화하는 메서드로 Arrays.fill()이 있다. 기존에 아래와 같이 for문을 사용해서 배열의 값을 초기화하지 않고도 간편하게 배열의 값을 초기화할 수 있다. int arr[] = new int[10]; for (int i = 0; i < arr.length; i++) { arr[i] = -1; } 1차원 배열 초기화 Arrays.fill(배열 변수, 초기화할 값) 의 인자를 넣어서 초기화하면 된다. 예시는 아래와 같다. import java.util.Arrays; public class ArrayFill { public static void main(String[] args) { int arr[] = ..