전체 글

백엔드 개발자
오늘은 웹개발 전반을 아우르는 CS 지식들을 찾아보고 짤막한 발표를 해보면서 찾아보았던 내용을 복습하면서 정리해보았다. 1. 라이브러리와 프레임워크 1-1. 라이브러리와 프레임워크 라이브러리와 프레임워크는 둘 다 미리 작성해둔 코드를 불러와서 사용하는 것이라는 공통점이 있고 개발자가 생산성있는 개발을 할 수 있도록 돕는다. 쉽게 말해 다른 사람이나 회사같은 단체에서 작성해둔 코드들을 필요하다면 개발자가 가져와서 사용할 수 있는 것이다. 물론 아주 힘들겠지만 본인이 직접 라이브러리나 프레임워크를 만들 수도 있을 것이다. 라이브러리는 하나 이상의 프로그램에 활용될 수 있는 데이터와 명렁어들의 집합이다. 특정 작업을 수행하기 위한 기능을 일정 단위로 모듈화한 것이다. 쉽게 말하면 재사용 가능한 동작들의 모음이..
SQL 관련해서는 매일 까먹지 않기 위해 일정 개수의 문제를 풀어보며 내용을 복습하고 있다. 그러다가 기존에 알고 있던 내용으로 풀 수 없는 문제가 있어 UNION에 대해 새로 알아보게 되었고 그 내용을 정리해보았다. 1. UNION UNION은 테이블과 테이블을 결합하는데 사용된다. JOIN은 열로 결합하는 형태라면 UNION은 행으로 결합하는 형태이다. 아래 예시를 보면 쉽게 알 수 있다. UNION에는 UNION과 UNION ALL이 있다. 둘은 동일하지만 UNION의 경우는 중복된 행을 제거한다. Table 상품ID 상품명 상품가격 1 새우깡 1300 2 매운 새우깡 1400 3 쌀 새우깡 1500 Table 상품ID 상품명 상품가격 1 새우깡 1300 2 고구마깡 1400 3 감자깡 1500 U..
오늘도 평소와 같이 복습과 연습의 목적으로 SQL 문제 몇 개를 풀어보는 시간을 가졌다. 그런데 오늘은 내가 아는 것 만으로는 도저히 풀 수 없는 문제가 있었고 Having 절이라는 새로운 것을 알게 되었다. 그에 대해 간략히 정리해보았다. 1. Where와 Having Where와 Having 절은 모두 특정 조건으로 필터링을 할 때 사용된다는 공통점이 있지만 큰 차이가 있다. 먼저 Where는 모든 행에 대해 조건을 만족하는지 검사하고 만족하지 않는 행을 걸러낸다. 반면 Having은 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에서만 조건을 검사하고 걸러낸다. 그룹화와 집계화가 이루어진 뒤에 결과를 필터링한다. SQL 구조의 순서는 다음과 같다. Having은 Group by 뒤에 등장한다는 것을..
오늘도 CS공부와 코틀린 문법에 대해서 공부해보았다. 코틀린에서 컬렉션을 필터링 하는 법에 대해 잘 모르고 있어 그에 대해 공부해보았고 정리해보았다. 1. Kotlin에서 컬렉션을 필터링하기 여러 연습 문제를 풀어보면서 다른 사람들의 답안을 보니 컬렉션을 필터링하는 filter()같은 함수들을 잘 활용하는 것을 볼 수 있었다. 꼭 숙지하고있어야 겠다는 생각이 들어 코틀린의 공식문서와 구글링을 통해 알아본 내용들을 정리해보았다. https://kotlinlang.org/docs/collection-filtering.html#filter-by-predicate Filtering collections | Kotlin kotlinlang.org 1-1. filter() 코틀린에서 컬렉션을 필터링하는 가장 기본적..
오늘도 CS 공부와 문제풀이를 병행해서 공부하는 시간을 가졌다. 문제 풀다가 새로 알게된 점, 흥미로운 점에 대해 정리해보았다. 1. 문제 풀기 1-1. 문제 프로그래머스에 있는 '내적' 문제를 풀다가 알게된 내용들을 적어보려고 한다 [문제] 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a,b의 길이) - 제한 사항 a, b의 길이는 1 이상 1,000 이하입니다 a, b의 모든 수는 - 1,000 이상 1,000 이하입니다 예시) a = [1,2,3,4], b=[-3,-1,0,2] 일때 a..
오늘도 연습삼아 프로그래머스에서 문제를 풀어보다가 재밌는 사실들 몇 가지를 알게되어서 정리해서 적어본다 1. 풀어본 문제1-1. 문제프로그래머스에 있는 연습문제 '수박수박수박수박수박수?' 문제를 풀어보았다. [문제] 길이가 n이고, "수박수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. - 제한 조건: n은 길이 10000이하인 자연수입니다. 입출력 예시nreturn3"수박수"4"수박수박 1-2. 내가 푼 풀이어떻게 풀어야할까 고민한 결과 여러 방법이 떠올랐는데 다소 무식하고 비효율적이게 보일지라도 정말 쉽게 해결하는 ..
오늘도 연습삼아 프로그래머스에서 문제를 풀어보다가 알게된 사실을 적어본다1. 풀어본 문제 (1)1-1. 문제프로그래머스에 있는 연습문제 '콜라츠 추측' 문제를 풀어보았다. [문제] 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.   1-1. 입력된 수가 짝수라면 2로 나눕니다.  1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.  2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 →  3 → 10  → 5  → 16  → 8  → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야..
오늘은 배열에 관련된 백준 문제를 풀다가 알게된 것을 적어본다 1. 배열을 문자열로 출력하기 배열에 관한 문제를 푸는 과정에는 별 문제가 없었지만 문제는 출력이었다. 문제의 답안을 그대로 배열로 출력하는 것이 아니라 문자열로 출력하게 되어 있기 때문이었다. 답으로 얻은 배열이 [1, 2, 3, 4, 5]라면 "1 2 3 4 5"이런 형식으로 출력해야 답으로 처리되게 되어있어 고민에 빠졌다. 일단 내가 알고있는 방법을 동원해서 해결해 보기로 했다. fun main() { val array1 = intArrayOf(1,2,3,4,5) var answer = array1[0].toString() for (i in 1..array1.size-1) { answer += " ${array1[i]}" } printl..
무무11
무무의 블로그