
'100일 챌린지'는 오늘 9월 23일부터 매일 무언가를 실천한다면 12월 31일 딱 100일째가 된다는 것을 이용한 챌린지이다. 해당 챌린지에 관해서는 한 TV프로그램에서 출연진의 말에서 시작됐다고 하는데.. SNS에서 현재 열풍이고 여러가지 100일 챌린지 표도 공

왜 벌써 12시가 넘은걸까.. 밖에서 볼일을 보고 집에 돌아와 잠깐 청소하고 나니 시간이 이렇게 됐다. 무언가를 100일 동안 꾸준히 하는것은 생각보다 어려운 것이다. 100일 챌린지 만만치 않군... 하지만 스플래툰에서의 하루는 아침 9시에 변한다! 나는 이 새인류인

서론 Ajax로 파일 업로드를 진행하는 동안 로딩바를 띄우고자 했는데 문제가 있었다. 완전히 일치하지는 않지만 문제의 코드를 러프하게 재현해 보았다. 찾으면서 알게 된 지식인데 dataType은 통신의 결과로 넘어올 데이터 타입을 결정하는 것이었고 contentTyp

여기까지 와서 이제야 ajax가 무엇인지를 파헤치는 것이 맞나 싶었지만..그래도 기초를 짚고 넘어가는 것이 좋을거 같아서 오늘은 ajax의 기초에 시간을 할애하기로 했다.오늘은 ajax가 무엇인지 그리고 어떤 식으로 사용하는지에 대해서만 간단하게 이야기하도록 할 예정이
무언가를 값을 비교할때 우리는 == 혹은 ===을 이용해서 비교를 한다.오늘은 이 둘의 차이점에 대해 알아보고자 한다.==은 Equal Operator라 부르고, ===은 Strict Equal Operator 라고 부른다.Strict(엄격한)란 이름에서 유추할 수 있
100일 챌린지 표시에는 분명 6개가 되어있는데 게시글은 5개밖에 없는 이 상황..살펴보니 4일차 게시글을 4일 ~ 5일 걸쳐서 작성했던거 같다..공부를 했는데.. 게시글은 늘어나지 않은 상황..웁스.. 나의 실수... 그래도 공부를 거른게 아니니 이 챌린지는 계속 갑

오늘부터 Udemy에서 강의를 듣기 시작했다! 첫 스타트는 자바스크립트의 알고리즘과 자료구조에 대한 강의를 듣기 시작했는데 앞으로 한동안은 여기서 공부한 것들을 정리할 것 같다. 그 첫 스타트가 Big O에 대한 정리이다.좋은 코드란 무엇인가? 처리가 빠른 코드? 메모

어제의 이야기를 이어서 하도록 하겠다.Big O 표기법은 기본적으로 O() 형태에 괄호 안에 연산 갯수의 근사치를 넣는다.저번 게시글의 첫번째 코드를 다시 봐보자여기서는 for문 루프를 사용해서 0부터 N까지 연속된 숫자들을 더했다. for문 루프를 사용했기 때문에 t

저번까지 Big O notation의 시간복잡도에 대해서 이야기를 해 보았다. 입력값이 커지면 알고리즘이 얼마나 많은 시간이 소요되는지 그 전체적인 추세를 알아보는 방법에 대해서 알아보았다. 이번에는 공간 복잡도이다! 이번에 주목할 것은 알고리즘이 메모리를 얼마나 많이

알고리즘을 만들 때 다들 고민을 한 번쯤은 해봤을 것이다. 여기서 Array를 쓰는게 더 효율적인지 Object를 사용하는 것이 더 효율적인지. Big O 개념을 알았다면 이제 둘 중 어떤것이 더 효율적인지 표기할 수 있다!지금까지 배운 BigO개념을 이용해서 Arra

알고리즘(algorithm) 특정 작업을 달성하거나 문제를 해결하기 위한 과정이나 일련의 단계본론에 들어가기 전에 먼저 알고리즘이란 무엇인지 설명하기 위해 알고리즘이 무엇인지 간단하게 한 줄로 정리해 보았다. 알고리즘의 복잡성을 다 설명한 뒤에 이제와서 알고리즘에 대해

어제까지는 4단계까지 문제 해결/단순화까지 했다 코드를 작성하고 동작하는 것으로 만족해도 괜찮지만, 더 나은 성능의 효율적인 코드를 만들기 위해서는 이 다음이 중요하다. 나중에 면접을 볼 때에도 이 부분은 중요하다니 개발자의 기본덕목이라고도 할 수 있다. 오늘은 마지막
오늘은 회식이 있어서 좀 늦었다... 이전에도 말했듯이 나는 스플래툰 오징어국의 시간을 따르기 때문에 하루가 지나려면 새벽 4시가 되어야 한다. 아직 나의 도전은 끝나지 않았다!어제까지는 알고리즘을 풀 때 어떻게 접근해야하는지 그 접근성에 대해서 이야기를 하고 마무리

서론 오늘 이야기할 주제는 빈도카운터 패턴(Frequence Counter Pattern)이다. 빈도카운터 패턴은 욕심법, 슬라이딩 윈도우 처럼 공식이름을 가진 패턴은 아니다. 내가 보는 강의에서 강의자가 붙인 이름으로 비공식이지만 많이 쓰이는 패턴 중 하나이다. 본론
Given two strings, write a function to determine if the second string is an anagram of the first. An anagram is a word, phrase, or name formed by rear
오늘은 Multiple Pointers Pattern에 대해 배운것을 정리해 보도록 하겠다. 다중 포인터 패턴은 배열, 문자열, 이중 연결 리스트 같은 선형의 자료구조에서 사용할 수 있는 패턴으로, 인덱스나 위치에 해당하는 포인터 값을 만든 다음 조건에 따라 이동시키면
서론 우리는 보통 문자열에서 특수문자를 걸러내거나 문자열을 검색하고 치환할때 자주 정규식을 사용하곤 할 서이다. 하지만, 정규식을 사용하는 것 외에도 다른 방법이 있다. 오늘은 UTF-16 code를 이용하는 방법과 그리고 UTF-16 code를 도출해재는 charC
And와 OR은 ture와 false값을 반환하는 논리연산자이다. And일때는 모든 명제가 참이여야 참을 반환하고 OR일때는 참인 명제가 하나라도 있으면 참을 반환한다. 학교에서도 수학시간에 잠깐 배운 개념이라서 다들 익숙할 듯 하다. 오늘은 이 논리 연산자가 java
서론 이전글에서 연산자가 작동하는 방식을 공부했다. 이번 글에서는 논리연산자의 단축평가에 대해 알아보고자 한다. 단축평가를 알아두면 논리연산자를 사용하는 많은 상황에서 더 효율적으로 코드를 작성할 수가 있다. 본론 논리연산자의 단축평가(short circuit eval
첫 Multiple Pointers Pattern 글에서는 다중 포인터 패턴이 어떤것인지에 대해 공부했다. 오늘은 그것을 이용해서 하나의 배열에서 중복을 제거한 고유한 값이 몇 개인지를 알아내는 문제를 풀어보도록 하겠다. 다중 포인터 패턴을 이용하기 위해서는 일단 두
서론 오늘 공부한 것은 슬라이딩 윈도우 알고리즘이다. 슬라이딩 윈도우라는 단어는 익숙하다. 정처기 공부할 때 네트워크 호스트간의 패킷의 흐름을 조절해주는 것으로 달달 외웠었는데 여기서 같은 이름의 알고리즘 이름으로 만나니 반가울 따름이다. 본론에서 이어서 슬라이딩 윈도
오늘 이야기 할 것은 Divide and Conquer(분할과 정복)이다. 분할과 정복은 보편적으로 많이 쓰이는 패턴으로 공식적인 알고리즘 패턴이다. 큌 정렬, 힙 정렬, 이진 탐색, 이진 탐색 트리 등등의 정렬과 탐색에 많이 사용되고 주로 배열이나 문자열의 큰 규모의
어제는 분할과 정복의 개념에 대해서 공부했다. 분할과 정복은 여러 알고리즘의 기본이 되는 접근법인데, 어제는 탐색로직에 분할과 정복을 도입하며 원리에 대해서 이해하는 시간을 가졌다. 오늘은 그걸 코드로 구현하려고 한다. 정렬된 숫자 배열과 값을 받고, 값과 일치하는 배
Write a function called sameFrequency. Given two positive integers, find out if the two numbers have the same frequency of digits.Your solution MUST h
서론 당분간은 패턴을 응용해서 문제를 연습을 할 것 같다. 오늘은 어제의 Frequency Counter을 이용해서 문제를 풀어보고 추가로 Multiple Pointers 패턴을 이용해서도 문제를 풀어볼 것이다. 그렇게 하는 것으로 둘의 차이를 비교할 수 있을것이고 어

서론 오늘은 어제 잠깐 언급했던 가변인자 함수에 대해 짚고 넘어가 보려고 한다. 가변인자 함수는 파라미터의 갯수가 정하지 않은 함수로 최소 한 개 이상의 파라미터를 받을 수 있다. 어제 문제처럼 파라미터의 갯수가 가변적인 상황에서 많이 사용한다. 본론 가변인자 함수는
Write a function called averagePair. Given a sorted array of integers and a target average, determine if there is a pair of values in the array where
Write a function called isSubsequence which takes in two strings and checks whether the characters in the first string form a subsequence of the chara
Given an array of integers and a number, write a function called maxSubarraySum, which finds the maximum sum of a subarray with the length of the numb
Write a function called minSubArrayLen which accepts two parameters - an array of positive integers and a positive integer.This function should return
Write a function called findLongestSubstring, which accepts a string and returns the length of the longest substring with all distinct characters.O(n)
https://velog.io/@eprnfmfmfm/24일차-Frequency-Counter-복습오늘부터는 내가 풀었던 알고리즘과 해답을 비교하면서 피드백을 하는 고드리뷰 시간을 가지려고 한다. 해당 문제와 기존의 해결법은 위의 링크에서 확인할 수 있다.두 숫
https://velog.io/@eprnfmfmfm/25일차-Use-Frequency-Counter-Pattern-or-Multiple-Pointers-Pattern오늘은 25일차에 풀었던 알고리즘을 리뷰하도록 하겠다. 자세한 문제와 나의 해결책은 위의 링크를
https://velog.io/@eprnfmfmfm/27%EC%9D%BC%EC%B0%A8-Multiple-Pointers다중포인터를 이용한 본격적인 문제에 들어가보자. 해당 문제는 언제나처럼 제일 상단의 링크에서 확인할 수 있다. 해당 문제에서는 주어진 배열에
https://velog.io/@eprnfmfmfm/28일차 이 문제에서는 O(N + M)의 시간 복잡도의 알고리즘 혹은 O(1)의 공간복잡도의 알고리즘을 구현해내도록 요구하고 있다. 나는 여기서 둘 다를 충족시키고 싶어 따로 배열을 사용하지 않고 string
https://velog.io/@eprnfmfmfm/29일차-Sliding-Window이제 마지막 패턴인 슬라이딩 윈도우 리뷰에 들어왔다. 슬라이딩 윈도우 문제는 두 개 있었는데 이 첫번째 문제는 쉽게 풀었지만 그 다음 문제가 정말로 어려웠다. 먼저 쉽게 풀었
https://velog.io/@eprnfmfmfm/30일차-Sliding-Window-2저번 글에서 문제가 두 개 있고 두 번째 문제가 가장 어려웠다고 적었는데... 다시 보니 문제가 세 개 였고 세번째 문제가 정말 어려웠다. minSubArrayLen을 구
https://velog.io/@eprnfmfmfm/31일차-Sliding-Window-3패턴에 관해서는 이 글이 마지막 코드 리뷰이다. 마지막 문제답게 좀 난이도가 있었는지 다른 문제를 풀 때보다 더 많은 시간이 소요됐다.마지막에 마지막에 가서는 도저히 안되
오늘부터는 코드 리뷰에서 나와 다시 알고리즘 개념공부를 시작하도록 하겠다.그 첫번째는 많이 들어보았지만 여전히 알듯말듯한 개념인 재귀이다.재귀라는 단어에서 다시 불러온다는 의미를 유추할 수 있는데 과연 어떤 개념인지 알아보도록 하겠다!자신을 다시 호출하는 프로세스를 말
어제는 재귀란 무엇인지 재귀함수를 호출할때 호출스택에서는 무슨일이 일어나는지를 살펴보았다. 오늘은 팩토리얼을 재귀적으로 구현하는 방법에 대해서 이야기하고자 한다.위의 코드는 어제 보았던 재귀적으로 작성한 countUp함수이다. num의 증가는 10에서 멈추도록 중간에
오늘은 어제와 그제 공부한 재귀를 이용해서 알고리즘 문제를 몇 개 풀어보았다. 그 중 하나는 배열로 받은 데이터를 내부에서 비교하고 조건에 해당하는 데이터를 찾아내 배열로 다시 반환하는 문제였는데, 재귀를 이용해서 구현하다보니 문제가 하나 생겼다. 재귀함수는 계속해서
재귀에 대한 강의는 모두 끝났다. 이제 남은건 재귀 연습문제 뿐이다. 오늘 문제를 4개정도 풀었고(간단하게 빠르게 다 풀 수 있었다.) 오늘 게시글에서는 내가 푼 솔루션을 리뷰하도록 하겠다.두개의 숫자를 파라미터로 받고 첫번째 인자의 수의 두번째 인자만큼의 제곱을 구하
피보나치 수열이란?피보나치 수열을 재귀로 구현하기리뷰피보나치 수열이란, 어떤 수열의 항이 앞에 두 항의 합과 같은 수열을 말한다.이탈리아의 수학자 피보나치가 발견한 것으로, 피보나치는 1202년 갓 태어난 암수 한 쌍의 토끼가 있을때 이 토끼 한쌍이 태어난지 두 달이
오늘도 이어서 재귀문제를 풀어보도록 할 것이다. 이번에 재귀 문제들은 저번에 소개한 문제들 보다 조금 더 난이도가 있는 문제들이다.주어진 문자열을 반대로 반환하는 재귀함수 reverse를 구현하시오.나는 순수재귀를 이용해서 reverse를 작성했다. 함수안에 데이터를
배열과 callback함수를 받고 true, false를 반환하시오callback 함수는 파라미터로 함수를 전달받아 함수 내부에서 실행하는 것을 말한다.someRecursive에서는 예제로 배열안에 홀수가 있는지를 판단하는 isOdd나 배열안에 특정 수보다 큰 수가
주어진 string의 배열의 각 문자의 첫번째를 대문자로 만들어서 반환해라.toUpperCase()나는 이 문제를 helper재귀를 사용해서 풀이했다.먼저 다음과 같이 helper재귀에서 도출한 데이터를 수집할 변수를 선언했다.그리고 내부 재귀함수를 생성했다. 내부 재
회시을 다녀오느라 글 쓰는게 늦어졌다...그래도 오늘 할 일은 마무리해야지 하고 자려던 몸을 일으켜 지금 이렇게 컴퓨터 앞에 앉았다. 오늘은 두 번째 재귀연습문제 nestedEvenSum을 풀이해보려고 한다. 그리고 갑자기 궁금해져서 내일은 재귀연습문제 풀이를 잠깐 쉬
const, let, var은 javascript에서 많이 사용하는 변수 선언 방식이다. 대충 나는 피상적으로 저 셋을 이해하고 있는데, 오늘은 좀 더 깊이 알고 싶은 마음에 글 주제로 선정했다. 내가 알고있는 것들은 다음과 같다.const와 let은 Declaring
서론 어제는 const, let, var의 특징과 왜 var보다 const와 let을 사용하도록 권장되는지를 알아보았다. 오늘 공부할 내용의 var의 가독성을 떨어뜨리는 단점으로 거론되었고 이것이 일어나지 않는 것처럼 보이는 것이 const와 let의 장점이라고 하던
서론 이틀전 var, const, let에 대해 공부했을때 mdn문서에서 스쳐지나가듯이 Destructuring Assignment이란 용어를 보았다. 그 때 글에는 적지 않았지만 해당 표기법에 대해 호기심이 생겨서 알아보았고, 오늘 글 주제로 선정하게 되어 알게 된
문제 > ### capitalizeWords string의 배열을 받아서 대문자로 변환시킨뒤에 새로운 배열로 반환하는 capitalizeWords를 구현하라. 솔루션 내가 이 문제에 대해 작성한 솔루션은 다음과 같다. 먼저 다음과 같이 파라미터로 받은 배열의 길이가
오브젝트를 파라미터로 받고 number을 전부 string으로 바꾸어 새로운 배열을 반환하는 재귀함수 stringifyNumbers를 작성하시오.새로운 배열 생성number타입 string으로 변환재귀사용이 문제를 해결하기 위해 필수적으로 충족시켜야 할 것들을 이렇게
어제 toString()함수를 알아보다가 toString에 대한 mdn문서 제목이 Object.prototype.toString()인 것을 발견했다. 왜 toString()만 적어놓은 것이 아닐까? 이런식의 표기는 자바에서 import할 때를 생각나게 했다. 이것또한
오브젝트를 받고 오브젝트안의 모든 스트링을 리스트로 반환하는 collectStrings를 작성하시오.이번도 이전에 풀었던 문제들과 같은 방식으로 해결했다. 임시로 tmpArr생성for루프를 통해 object에 접근값이 string일 경우 tmpArr에 push내부에 o
이제 검색 알고리즘 section에 들어왔다. 흔히 쓰는 검색 알고리즘은 구글링을 하는 것 부터 회원가입에 이르기까지 아주 다양하게 쓰이고 있다. 오늘 이야기할 것은 그 많은 검색 알고리즘 중 선형검색 알고리즘이다. 선형의 데이터에서 사용되는 알고리즘비정렬된 데이터에서
서론 두번째로 이번 글에서 다룰 검색 알고리즘은 이진검색 알고리즘이다. 사실 이것도 이전에 했던 내용과 비슷한 것이 있다. 하지만 복습한다 생각하고 함께 살펴보도록 하자. 본론 이진검색 알고리즘은 선형검색 알고리즘보다 한 층 더 향상된 알고리즘이다. 전체를 비교하지 않
서론 지금까지 계속 자바스크립트 이야기만 하다가 갑자기 쿼리로 넘어가니 다들 좀 의아할 수도 있을것이다. 오늘은 자바스크립트를 잠시 접어두고 내가 회사에서 선배에게 배운 쿼리관련 내용을 정리하는 글을 써 보려고 한다. 선배는 백엔드 개발자이고, 그러다 보니 쿼리에 대해
새로운 프로젝트에 투입이 되었다. 어제까지 개발환경세팅을 끝냈고, 이제 개발을 위해 코드를 좀 보며 파악하고 있는 중이다! 코드를 작성하기 전에 전체적인 구조를 파악하는 것은 당연한 일! 오늘은 그러한 이유로 MVC패턴이 무엇인지 복습하는 시간을 가지려고 한다. MVC
서론 어제까지는 MVC패턴에 대해서 공부해보았다. 하지만 궁금한 점이 있다. 데이터를 검색하고 연산하는 비즈니스 로직은 Model에서 수행이 된다. 그런데 MVC구조를 구현하다 보면 ModelAndView라는 메서드를 만나게 된다. 과연 ModelAndView는 무엇이
서론 어제는 MVC 구조에 대해 알아보았는데 Model에서 데이터를 저장 할 때 사용하는 DTO란 무엇인지 d알아두는게 좋을 것 같아, 이렇게 하루의 글 주제로 삼아보았다. 본론 참고 https://youtu.be/z5fUkck_RZM
서론 오랜만에 다시 검색알고리즘으로 돌아왔다. 오늘은 검색 알고리즘의 마지막 파트인 Naive String Search에 대해서 알아보고자 한다. 본론 참고 https://www.udemy.com/share/105zfq3@pxNhobIwtiin2DsuRfWs4oTho
개발을 하다가 .jspf라는 확장자의 파일을 발견하게 되었다. 처음 접하게된 파일 형식이었는데 오늘은 이것에 대해 알아본 것들을 정리하고 싶어서 글 주제로 삼게 되었다.JSP Fragment를 jspf라고 부른다. 다른 JSP파일에 포함되는 static file이다.스
서론 정렬은 컴퓨터 공학에서 중요한 문제라고 한다. 구글 같은 대기업에 들어가기 위한 면접 법들에 관한 책들에서는 대부분을 정렬에 할애한다고.. 이렇게 중요한 정렬에 대해서 오늘부터 달려보도록 하겠다! 본론 정렬이란? 정렬은 컬렉션의 항목을 재배열하는 과정을 의미한다.

서론 WAS를 듣자마자 바로 무엇인지 떠올릴 수 있는가? 난 WAS라고 하면 미들웨어이고 Web Application Server라는 대략적인 정의정도를 떠올릴 수 있다. 하지만, 이 정도로는 어떤 것인지 바로 이해하기는 힘들다. 오늘은 그 개념을 더 쉽게 이해할 수
서론 매번 개발을 할 때마다 Servlet과 Spring에 대해서 용어는 들어보기는 했지만, 그 뜻들은 잘 모르고 지나친 적이 많았다. 오늘은 그들의 차이가 무엇인지 알아보고 그걸 글로 정리하고자 한다. 본론 Servlet이란? 웹 애플리케이션을 만들 때 필요한 인
논리 연산자 중 '!'연산자에 대해서는 다들 잘 알고 있을 것이다. not의 의미를 가지는 이 연산자는 결과값에 대한 반대값을 반환한다. 그렇다면 그 not의 not이면 어떻게 될까? 결과는 변화없이 똑같이 반환 될 것이다. 그렇다면 어째서 '!!'를 사용하는 것인지
오늘은 mybatis의 에러 중 하나인 Mapped Statement collection does not contain value for~ 에러에 대해서 글을 써 보려고 한다. 에러 전체는 다음과 같이 나온다.java.lang.illegalArgumentExceptio
오늘 공부할 것은 vi 에디터이다. 리눅스나 유닉스를 처음 접하는 사람에게는 생소하고 어려워보이지만(내가 그랬다) 막상 사용하면 정말 편리하고 쉽다. 오늘은 이 vi에디터에 대해서 배운 것들을 간단하게 정리하기 위해 글 주제로 삼았다.vi란 'Visual display
오늘 공부하게 될 내용은 Vue의 생명주기와 vue.js에서 사용할 수 있는 callback함수인 nextTick에 대해 이야기하려고 한다.생명주기란 인스턴스 상태에 따라서 호출할 수 있는 속성들을 이야기 한다. 그리고 그 속성마다 개발자가 추가한 커스텀 로직을 라이프
다들 order by는 잘 알고 있을 것이다. 기본적으로 내림차순, 오름차순 하는 방법은 다들 익히 알고 있겠지만, 데이터를 원하는 순서대로 정렬하고 싶은 경우가 있을 것이다. 그 외에도 규칙은 없지만 내가 원하는 대로 데이터를 지정해서 정렬하고 싶을 때 사용할 수 있
Vue를 이용해서 화면을 구성하는데 Type error undefined~ 오류가 발생하면서 화면이 그려지지 않고 스크립트가 멈춰버리는 문제가 발생했다. 이제 그 문제가 무엇인지 그리고 내가 찾은 해결방법이 무엇인지 소개하고자 한다.Type error undefined
stream에 대해 공부하려고 시작하자마자 람다함수.. 이런 단어에 막혀버렸다. 오늘은 그래서 그게 뭔지 알아보려고 한다.자바는 원래 oop 언어 (객체지향언어) 인데 jdk1.8부터는 함수형 언어를 몇 가지 추가했다. 빅데이터가 부상하면서 그런 어마어마한 양의 데이터
람다식은 익명 객체이다. 중요한건 자바에서의 람다식은 익명객체이기 때문에 참조변수가 필요하다. 자바에서는 함수형 인터페이스를 사용해 참조변수를 작성하고 람다식을 사용한다. 때문에 람다식은 익명객체와 마찬가지로 참조변수를 필요로 한다. 참조변수 타입도 필요한데 그것을
두 개 이상의 SELECT 쿼리의 결과물을 하나로 묶고 싶을 때 사용할 수 있는 오라클의 operator이다.둘의 차이는 UNION은 합쳐진 결과에서 중복을 제거하고 반환하고, UNION ALL에서는 중복을 포함하여 반환한다는 것이다.다음 그림을 보면 더욱 쉽게 이해할
오늘은 오라클에서 제공하는 윈도우 함수 중 하나인 RATIO_TO_REPORT에 대해서 알아보려고 한다.RATIO_TO_REPORT는 비율을 구하는 윈도우 함수로, 문법은 다음과 같다.이런식으로 VALUE의 비율을 구하고 싶은 수를 넣으면, 윈도우 함수 RATIO_TO
분석함수란 테이블에 있는 로우의 특정 그룹별로 집계 값을 산출 할 때 사용하는 함수이다.GROUP BY 절을 이용하면 그룹별로 로우 수가 줄어들게 되는데, 이때 분석함수인 집계 함수를 사용하면 로우의 손실 없이도 그룹별 집계 값을 산출해 낼 수 있다.저번 글에서 WIN
데이터 분석함수 중 하나로 세분화해서 그룹함수에 속하는 함수이다. ROUND를 이용하면 그룹별로 주안소계나 전체 소계를 찾아낼 수가 있어, 통계에서 많이 사용한다. 이 외에 그룹함수에는 CUBE, GROUPING SETS이 존재하는데 내일과 모레 그 주제로 글을 쓰려고
오라클에서 GROUPING 함수는 ROLLUP, CUBE, GROUPING SETS과 같은 그룹함수들을 이용해 소계나 집계를 구하는 통계식에 자주 사용된다. 그 이유는 GROUPIING과 GROUPING_ID를 이용하면 테이블의 데이터들의 날것인지, 합계인지 소계인지를
CUBE란? ROLLUP과의 차이점 CUBE 사용예시 참고
UNION ALL의 개념이 섞여있는 그룹함수. 여러개의 그룹핑 쿼리를 UNION ALL 한 것과 같은 결과를 만들 수 있어서 유연하게 소계, 합계 집계를 할 수 있다.어제 사용했던 예제 테이블을 이용해서 GROUPING SET을 실행해 보도록 하겠다.이름과 년도 기준으
SELECT문을 작성할때 우리는 다음과 같은 순서로 SQL을 작성한다.하지만 과연 데이터베이스 내부에서는 위와 같은 순서대로 실행이 될까? 답은 그렇지 않다는 것이다.과연 데이터베이스 내부에서는 어떤 순서대로 SQL을 작성하는지 알아보도록 하겠다.결론부터 이야기 하자면
오라클에서 보통 숫자를 소수점 몇 자리까지 나타내고 싶을 때 우리는 TRUNC와 ROUND를 사용한다. 둘은 비슷한 기능을 가지고 있는데 과연 어떤 차이가 있을지 오늘 비교해 보고자 한다.TRUNC는 오라클의 기본함수로, 소수점을 절사할때 외에도 날짜와 시간까지 절사하
MERGE구문이란 UPDATE와 INSERT를 한 번에 해결해주는 쿼리이다.어떠한 데이터를 기존의 테이블에 집어넣을때 중복 데이터가 있다면 UPDATE를, 중복되는 데이터가 아닌 신규 데이터라면 INSERT를 하는 프로세스가 필요할 때 많이 사용된다. 만약 MERGE를
Invalid header signature라는 에러가 등장했다.엑셀 파일을 서버에 내용을 읽어내서 List로 반환하는 식의 기능을 구현하려고 했는데 에러가 발생했다. 로그를 보면 에러는 POIFSFileSystem fs = new POIFSFileSystem(new
오늘은 POI를 이용해서 서버에 excel파일을 업로드 해, 그 데이터를 DB 테이블에 집어넣는 기능을 구현해 그것을 기록하려고 한다. 이러한 기능은 수정해야할 사항이 많은 데이터를 조작할때 엑셀로 편리하게 편집하고 올리고자 하는 수요에 따라 만들어졌고, 실무에서 많이
참고 https://myvelop.tistory.com/64#:~:text=%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90%20%EC%A0%81%EC%9A%A9&text=JRE%20System%20Library%EB%A5%BC%20%E
오늘 이 주제를 선택하게 된 이유는 다음과 같다.어떠한 데이터를 호출하는 API에서 Map<String, Object> 타입의 객체 map을 받아 화면에 뿌려주는 javascript 로직이 있다.map의 데이터를 풀어 화면에 뿌려주기 위해서이다. 하지만, 이 작업
clone 이용하기 (IE에서)https://jeongnue.tistory.com/21
오늘은 내가 배운 for루프를 사용할때의 tip을 적어보려고 한다.for문을 작성할 때 요즘은 보통 위처럼 작성하겠지만 가끔 index가 필요할 때가 있다.이런식으로 작성을 하면 list의 length를 매 루프마다 반복해서 호출하게 되는데 용량이 큰 데이터를 다룰 때
PersistenceException 오늘은 내 시간을 잡아먹었던 에러에 관해서 기록하려고 한다. PersistenceException은
반복되는 쿼리를 묶는 mybatis 문법이다.반복되는 쿼리가 있다면 묶고 그 쿼리를 include refid 문을 이용해서 쿼리 내부에 호출하면서 사용하면 된다.https://k9e4h.tistory.com/259
SQL에도 문자열을 붙이는 CONCAT함수가 존재한다.문법은 다음과 같다.중간중간에 빈 문자열을 붙이는 것도 가능하다!
연말을 맞이하여 오늘은 웹 트렌드를 체크하는 시간을 가지고자 한다. 해당 설문조사는 현업을 기준으로 작성되었다고 한다.javaScript 68% > 67%HTML/CSSSQLPythonTypeScript 40.08% > 36.42%JAVATypeScript의 사용추세
오라클 정규식에는 REGEXP_LIKE, REGEXP_REPLACE, REGEXP_INSTR, REGEXP_SUBSTR, REGEXP_COUNT가 총 다섯개가 있다. 저번에는 REGEXP_SUBSTR과 REGEXP_COUNT만 다루었다. 오늘의 저 두 개를 제외하고 다
오라클 힌트란 무엇이냐면 말 그대로 힌트며, 힌트를 주는 대상은 옵티마이저다. 옵티마이저가 잘못된 판단으로 비효율적인 실행계획을 수립했을 때 힌트를 주어서 풀어낼 수 있다. 이 쿼리에서는 어떤 인덱스를 사용해야 하는지, JOIN의 순서와 방식에 관한 것을 정해서 알려주
INNER JOIN, CROSS JOIN, OUTER JOIN NATURAL JOIN은 다들 익히 들었을 것이다. 오늘 다룰 JOIN은 여기서 한 단계 더 들어간 NESTED LOOP JOIN, SORT MERGE JOIN, HASH JOIN이다. 같은 JOIN들이지
오라클 9I 이전에는 MSSM 방식으로, 공간에 대한 사이즈 할당을 거의 수동으로 관리했었다. 10G로 넘어오면서 ASSM 방식이 도입되면서 오라클에서 자동으로 알맞은 사이즈를 할당해주게 되었다.데이터가 저장되는 논리적인 구조에 대해서는 크기가 작은 것부터 말하자면 B