목록분류 전체보기 (271)
DHistory
11-1-1 SQL 모드 MySQL 서버의 설정 파일에서 sql_mode를 설정할 때는 구분자(,)를 이용해 키워드를 동시에 설정할 수 있습니다. STRICT_ALL_TABLES & STRICT_TRANS_TABLES MySQL 서버에서 INSERT나 UPDATE 문장으로 데이터를 변경하는 경우 칼럼의 타입과 저장되는 값의 타입이 다를 때 자동으로 타입 변경을 수행합니다. ANSI_QUOTES MySQL에서는 문자열 값(리터럴)을 표현하기 위해 홑따옴표와 큰따옴표를 동시에 사용할 수 있습니다. Oracle 같은 DBMS에서는 홑따옴표를 문자열 값을 표기하는 데 사용하고, 큰따옴표는 칼럼명이나 테이블명과 같은 식별자를 구분하는 용도로만 사용합니다. => 문자열을 표현할 때는 홑따옴표를 사용하는 습관을 길러..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(name, yearning, photo): answer = [] # 점수 초기화 score_board = {} for i in range(len(name)): score_board.update({name[i]: yearning[i]}) # 문제풀이 for data in photo: sum = 0 for name in data: score = score_board.get(name) if score != None: sum += score answer.append(sum) # 정답..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(players, callings): # 초기화 players_map = {} for (index, value) in enumerate(players): players_map.update({value: index}) # 문제풀이 for calling in callings: # 현재 순위 가져오기 index = players_map[calling] front_name = players[index - 1] # 랭크(이름) 변경 players[index], players[index ..
가정 git remote를 origin으로 설정 git remote show $(git remote get-url origin) | sed -n '/HEAD branch/s/.*: //p'
MySQL Container 기본편 [Docker] MySQL Container에 CSV 파일 넣기 MySQL Container에 왜 CSV를 넣게 되었는가? datadog에 저장된 로그를 분석하는 작업을 진행하고 있었습니다. 로그를 group by하여 로그를 분석해야할 일이 생겼습니다. 처음에는 datadog에 내장되어 있는 gr dhistory.tistory.com 배경 데이터 정합성을 맞추기 위해 데이터 패턴을 확인하는 작업이 필요했습니다. 현재 AWS Aurora (MySQL 5.7)을 사용중이고, 5.7 버전에서는 regex를 이용하여 데이터를 변경하는 비용이 상당했습니다. 이를 해결하고자 MySQL 8.0에서 지원하는 regexp_replace() 함수를 사용하고자 합니다. MySQL 8.0을..
MySQL Container에 왜 CSV를 넣게 되었는가? datadog에 저장된 로그를 분석하는 작업을 진행하고 있었습니다. 로그를 group by하여 로그를 분석해야할 일이 생겼습니다. 처음에는 datadog에 내장되어 있는 group by를 활용하여 로그 분석을 진행했습니다. 하지만, 원하는 방식으로 group by를 할 수 없었고 다른 field로 group by 시 속도도 상당히 느렸습니다. 자유자재로 활용할 수 있고 빠르게 이용할 수 있는 방법을 찾기 시작했습니다. 로그를 CSV 파일로 추출할 수 있었기 때문에 해당 로그를 group by 하기 위해 DB를 생각했습니다. 현재 local에 설치된 DB는 없었고 docker로 mysql container를 띄워 사용중이었습니다. 이를 이용하고자 ..
풀이과정 1. 배열을 새로 생성하지 않고 기존 배열을 수정하여 중복된 숫자를 제거합니다. 2. 중복이 제거된 배열의 길이를 반환합니다. Java class Solution { public int removeDuplicates(int[] nums) { // 길이가 1인 배열은 중복을 제거할 필요가 없으므로 1을 반환합니다. if (nums.length == 1) { return 1; } // 첫 수는 반복되어도 제거대상이 아니기 때문에 index를 1로 설정합니다. int index = 1; // 중복되지 않은 수를 찾아 기존 배열을 수정합니다. for (int i = 0; i < nums.length - 1; i++) { if (nums[i] != nums[i + 1]) { nums[index] = nu..
코틀린에서 컬렉션 만들기 val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") println(set.javaClass) // class java.util.HashSet println(list.javaClass) // class java.util.ArrayList println(map.javaClass) // class java.util.HashMap 코틀린은 자신만의 컬렉션 기능을 제공하지 않는다. 코틀린 컬렉션은 자바 컬렉션과 똑같은 클래스다. 하지만 코틀린에서는 자바보다 더 많은 기능을 쓸 수 있다. val strings =..
해당 글은 Mac OS, IntelliJ Ultimate기준으로 작성되었습니다. 1. Projects를 선택 후 New Project를 클릭합니다. 2. Spring Initializr를 선택 후 원하는 세팅으로 설정합니다. 3. 초기에 사용할 library를 선택합니다. Web Application을 개발하기 위해 Spring Web, MySQL, Spring Data JPA, Lombok을 추가했습니다. H2는 Test Code 작성할 때 사용하기 위해 추가했습니다. 4. Lombok을 사용하려면 Plugin을 설치해야 합니다. IntelliJ IDEA > Preferences를 클릭하거나 command(⌘) + ; 단축키를 사용하여 아래 창을 엽니다. 4-1. 검색 창(command(⌘) + F)에..
기본 요소: 함수와 변수 타입 선언 생략 가능! 불변 데이터 장려! Hello, World! fun main(args: Array) { println("Hello, World!") } 함수를 선언할 때 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 타입을 쓴다. 함수를 최상위 수준에 정의할 수 있다. 배열도 일반적인 클래스와 마찬가지다. 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용할 수 있게 감싼 래퍼를 제공한다. 세미콜론을 붙이지 않아도 된다. 함수 함수의 반환 타입은 파라미터 목록의 닫는 괄호 다음에 오는데, 괄호와 반환 타입 사이를 콜론(:)으로 구분해야 한다. 코틀린 if는 문장(statement)이 아니고 결과를 만드는 식(expressio..