joonbread의 등록된 링크

키자드에 등록된 총 1673개의 포스트를 확인하실 수 있습니다.

Naver Blog

SQL 문제 24 - Type of Triangle(HackerRank)

SQL 문제 24 - Type of Triangle(HackerRank) Type of Triangle 풀이 * 출처

Naver Blog

SQL 문제 25 - New Companies(HackerRank)

SQL 문제 25 - New Companies(HackerRank) - 회사코드, 설립자, 총 책임자 수, 총 선임 관리자 수, 총 관리자 수, 총 직원 수를 오름차순으로 정렬하여 출력하는 문제다. New Companies 풀이 - 각 계급별 직원을 구하기 위해 회사 코드 테이블에 계급별 코드로 연결한다. - 회사코드, 설립자를 그룹으로 묶은 뒤 계급별 책임자 수를 오른차순으로 출력 * 출처

Naver Blog

SQL 문제 26 - Placements(HackerRank)

SQL 문제 26 - Placements(HackerRank) Placements 풀이 - 친구 테이블, 학생 테이블, 급여 테이블을 자신과, 가장 친한 친구에게 제공되는 급여 순서대로 조인하고 정렬하면 끝 * 출처

Naver Blog

MSSQL - NULL 체크

MSSQL - NULL 체크 - ORACLE의 NVL, MYSQL의 IFNULL과 동일한 함수로 ISNULL로 NULL을 체크한다. NULL 체크 함수 - IFNULL과 비슷하게 첫번째 인자에 NULL을 체크할 컬럼명과 컬럼 값에 NULL이 나온 경우 대체할 값을 두번째 인자에 작성해준다. * 출처

Naver Blog

MSSQL - 정규식의 논리값 반환

MSSQL - 정규식의 논리값 반환 - MSSQL에서는 논리식의 반환값이 참인지 거짓인지 반환하는 IIF문이 존재한다. IFF 예시 - 해당 IIF문은 CASE문을 작성하는 약식 방법으로, CASE문에서 적용되는 규칙이 IIF에서도 적용된다. * 출처

Naver Blog

자바 알고리즘 - 병합 정렬

자바 알고리즘 - 병합 정렬 - 병합 정렬은 비교 기반 정렬 알고리즘으로, 존 폰 노이만이 1945년에 개발한 알고리즘이다. 합병정렬 종류 1) 2-way 합병 - 정렬되지 않은 리스트를 각 한 원소만 포함하는 n개의 부분 리스트로 분할한 다음 부분 리스트가 하나만 남을때까지 반복해서 병합하며 정렬된 부분리스트로 만든다. 2) n-way 합병 - 리스트 길이가 1 이하일때까지 아래의 순서로 진행한다. - 분할(리스트를 절반으로 나눠 부분 리스트로 생성) - 정복(부분 리스트를 병합 정렬로 정렬) - 결합(정렬된 부분 리스트들을 다시 병합 후 임시 배열에 결과 저장) - 복사(임시 배열에 저장된 결고라르 원래 배열에 복사) 합병정렬 예시 * 출처

Naver Blog

자바 알고리즘 - 보고 정렬

자바 알고리즘 - 보고 정렬 - 정렬 알고리즘 중 비효율적인 정렬이다. - 실제 사용되는 알고리즘과 비교할 때 사용될 수 있는 알고리즘으로 논리형 프로그래밍의 예시로써도 사용되며, 카드를 섞을 때 사용되는 과정과 동일하다. 보고 정렬 실행 방식 - 위와 같이 deck(카드뭉치)가 정렬(not isInOrder)이 되지 않았을 때 정렬이 될때 까지 계속 카드뭉치를 섞는다(shuffle). 보고 정렬 예시 * 출처

Naver Blog

자바 기초 59 - Random과 SecureRandom의 차이

자바 기초 59 - Random과 SecureRandom의 차이 - java.util.Random 클래스와 java.security.SecureRandom 클래스의 차이에 대해 알아보자 Random과 SecureRandom의 차이 - Random이 들어간 클래스는 난수 생성기에서 시드(시간)를 통해 난수를 생성하는데, Random 클래스는 동일한 시간에 난수를 생성하면 동일한 시퀀스 값과 같은 시드가 반환(결정론적)되지만, SecureRandom 클래스는 동일한 시간에 난수를 생성하면 무작위 시드가 반환(비결정론적)된다. - 이런 점을 이용하여 암호화 방식에서의 난수는 Random 클래스보다 SecureRandom 클래스의 난수가 더 예측할 수 없으며 효과적이다. * 출처

Naver Blog

자바 알고리즘 - 도수 정렬

자바 알고리즘 - 도수 정렬 - 비교 요소들의 대소 관계를 판단하지 않고 빠르게 정렬하는 알고리즘이다. 도수 정렬 순서 1. 도수분포표 생성 1) A란 배열 요소 최댓값보다 +1만큼의 크기를 같은 배열(f)을 만들어서 해당 요소의 값을 요소 값에 맞는 인덱스에 +1을한다. 2. 누적도수분포표 생성 1) 1의 배열에서 a와 a+1를 더한 값을 a+1 인덱스에 넣는다. 2) 전과 동일하게 a+1과 그 a+2를 이후 a+2 인덱스에 넣는다. 3) 1)~2) 방법을 배열 1의 처음부터 끝까지 진행한다. 3. 목적 배열 생성 1) A배열 크기만큼의 목적 배열 b를 생성한다. 2) A 마지막 배열 요소 A[n] = r을 통해 f[r]을 비교한 뒤 r값을 목적 배열 b[r-1]에 넣어준다. 3) .......

Naver Blog

자바 알고리즘 - 브루트 포스

자바 알고리즘 - 브루트 포스 - 모든 경우의 수를 탐색하면서 조건에 맞는 결과를 가져오는 알고리즘으로, 비효율적인 알고리즘이다. - 모든 경우의 수를 탐색한만큼 정확도 100%를 보장하며, 거의 완벽하게 병렬 작업이 가능하지만, 알고리즘을 사용할 자원이 중요하다. - 모든 경우의 수를 동원하기 때문에, 풀이 문제의 종류에 따라 다양한 해결 방법이 존재한다. - 복잡성이 높을 수록 매우 어려운 방법이며, 특정 횟수 안에 문제를 풀어야 할 경우 가장 어려운 알고리즘이다. * 출처

Naver Blog

자바 알고리즘 - KMP 알고리즘

자바 알고리즘 - KMP 알고리즘 - 문자열에서 특정 문자열을 패턴으로 설정한 다음 패턴이 얼마나 나오는지 알려주는 알고리즘이다. KMP 알고리즘 실행 순서 1) 특정 문자열(ex: "abcdabckl")라는 문자열이 있을 때 특정 문자열을 배열화한 뒤, i란 접두사(인덱스 : 0)와 j(인덱스 : 1)란 접미사의 위치를 정한다. 2) i와 j가 매치되거나 i가 -1일때 한칸씩 전진한 뒤, j위치에 i를 저장한다. 3) 2번이 안됬을 경우 i는 상태전이함수에 있는 값으로 전환시킨 뒤 2)로 다시 돌아간다. 4) j가 n보다 커질 때 까지 반복 5) 상태 전이함수의 값을 출력한다. KMP 알고리즘 예시 * 출처

Naver Blog

자바 알고리즘 - Boyer-Moore

자바 알고리즘 - Boyer-Moore - 패턴의 마지막 문자부터 역순으로 검사를 진행하며(오른쪽에서 왼쪽으로 비교함) 불일치 지점 발생 시 Bad Character방식과 Good Suffix방식 중에 더 큰 값만큼 이동하는 방식을 선택하는 알고리즘이다. Bad Character - 오른쪽에서 왼쪽으로 비교를 할 때 문자 비교 시 시작 지점을 찾도록 시작 지점 전 위치를 건너뛰는 방식이다. - 패턴 오른쪽부터 왼쪽으로 비교하여 불일치 지점을 찾은 뒤, 불일치 지점 위치의 문자와 일치하는 패턴의 가장 오른쪽 지점을 찾아 그만큼 이동한다. Good Suffix Rule - 불일치 지점을 찾으면 불일치 지점을 기준으로 일치한 부분(오른쪽)과 불일치 지점 앞에서 대응되는 부분(왼.......

Naver Blog

JavaScript - 전개 구문

JavaScript - 전개 구문 - 배열이나 문자열과 같이 반복가능한 문자를 함수로 호출할 경우 0개 이상의 인수 또는 요소로 확장시켜 0개 이상의 키-값 객체로 확장시킬 수 있다. 전개 구문 예시 - ES6이상에서 지원하므로 IE에선 지원을 안한다.. * 출처

Naver Blog

JavaScript - const

JavaScript - const - 이전 글에서 적은 const에 대해 보완하고자 작성한 글이다. const란 - 블록 범위(우리가 흔히 쓰는 '{ }'의 안쪽 범위를 의미)의 상수를 선언하는 선언자로, 상수값은 재할당 할 수 없으며 다시 선언할 수 없다. const 예제 - 위에서 봤듯이 블록범위에서 let으로 const 변수가 아닌 걸로 선언한다. - 하지만, 블록 범위가 끝나면 처음에 const로 설정한 값으로 존재한다. - const로 생성한 오브젝트 키, 배열에 아이템을 삽입하는 방식은 가능하다. * 출처

Naver Blog

MSSQL - COMMENT 작성

MSSQL - COMMENT 작성 - MSSQL에서 COMMENT 작성법을 다루는 글이다. COMMENT 작성 table comment 작성 column comment 작성

Naver Blog

자바 알고리즘 - 8퀸 문제

자바 알고리즘 - 8퀸 문제 - 체스판의 퀸이 8개인 조건에서 서로 잡을 수 없도록 배치하는 문제이다. 8퀸 문제

Naver Blog

자바 알고리즘 - 버블 정렬

자바 알고리즘 - 버블 정렬 - 인접한 두 원소를 검사하여 정렬하는 방식으로 배열의 n-1, n번째 요소를 비교하며 작은 값은 n-1로, 큰 값은 n번째로 정렬하는 방식이다. - 만약 끝까지 도달 했을 경우 끝의 요소값이 정해진 다음, 처음부터 해당 끝 위치 전 요소까지 다시 정렬한다.(처음부터 끝까지 실행한 다음 다시 처음부터 정렬 마지막 요소 전까지의 정렬을 실행한다.) 버블 정렬 1. 버블 정렬을 할 배열(arr)을 매개변수로 받는다. 2. 0부터 매개변수 길이만큼 for문을 실행한다. 3. 2의 for문 안에서 1부터 매개변수 길이만큼 for문(비교대상 for문)을 실행한다. 4. 비교대상 2에서 arr의 n-1번째와 n번째의 요소를 비교하면서 정렬한다.......

Naver Blog

자바 알고리즘 - 선택 정렬

자바 알고리즘 - 선택 정렬 - 제자리 정렬 알고리즘의 하나로, 버블 정렬에서 조금 더 간소화한 정렬방식이다. 선택 정렬 실행 순서 1. 정렬 대상에서 최소값을 찾는다. 2. 최소값을 맨 앞의 위치한 값과 교체한다. 3. 교체한 위치 다음을 처음으로 정렬 대상의 맨 끝까지 1,2번의 내용을 다시 수행 선택 정렬 예시 * 출처

Naver Blog

자바 알고리즘 - 삽입 정렬

자바 알고리즘 - 삽입 정렬 - 정렬 대상의 모든 요소를 앞에서 차례대로 정렬된 값과 비교하면서 자기 위치를 찾아 삽입하며 정렬한다. - 해당 알고리즘은 정렬 대상의 크기가 클 수록 효율이 떨어지지만, 구현이 간단하며 선택 / 거품 정렬 알고리즘에 비교했을 경우 빠르며 안정적이다. 삽입 정렬 * 출처

Naver Blog

자바 알고리즘 - 셸 정렬

자바 알고리즘 - 셸 정렬 - 가장 오래된 정렬 알고리즘 중 하나로 삽입 정렬의 개선판이라고 할 수 있다. 셸 정렬 실행 순서 1. 데이터를 십 수개 정도 나눠서 삽입 정렬한다. 2. 1번 내용에서 다시 나눠서 삽입 정렬한다. 3. 2번을 계속 반복하여 한 줄로 마지막 정렬한다. 셸 정렬 예시 * 출처

Naver Blog

MSSQL - 삽입한 ID값 반환 함수(@@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT)

MSSQL - 삽입한 ID값 반환 함수(@@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT) - 테이블에 데이터 입력 시 삽입한 ID를 반환하는 방식으로 사용한다. MSSQL - 삽입한 ID값 반환 함수 @@IDENTITY 예제 - @@IDENTITY은 대상 컬럼에 반드시 @@IDENTITY가 선언되어 있어야 한다. * 출처

Naver Blog

자바 알고리즘 - 퀵 정렬

자바 알고리즘 - 퀵 정렬 - 다른 원소와 비교만으로 정렬을 수행하는 방식이다. - 분할 정복 방법을 이용한 정렬 방식이다. 퀵 정렬 실행 순서 1. 정렬 리스트에서 하나의 원소를 고르는데, 해당 원소를 피벗이라 한다. 2. 피벗 앞에 피벗보다 작은 모든 원소들, 뒤에는 큰 모든 원소들을 오게 한 뒤, 피벗을 기준으로 리스트를 둘로 나눈 다음, 피벗은 더이상 움직이지 않는다. 3. 1,2번을 반복 수행하여 리스트의 크기가 0이나 1이 될 때까지 반복한다. 퀵 정렬 예제 * 출처

Naver Blog

자바 알고리즘 - 피벗

자바 알고리즘 - 피벗 - 피벗이란 선형대수학에서 특정 계산을 수행하기 위한 임의 알고리즘에 의해 먼저 선택된 행렬의 성분을 의미한다. - 자바에서 피벗은 리스트 또는 배열 정렬 시 유용한데, 피벗이란 기준값을 두고 왼쪽엔 기준값보다 작은 값을, 오른쪽에는 기준값보다 큰 값을 배치한 뒤, 배치한 리스트 또는 배열에서 또 다시 피벗을 설정하여 해당 리스트, 배열의 길이가 0 또는 1이 되도록 사용한다. * 출처

Naver Blog

MSSQL - CONVERT, CAST

MSSQL - CONVERT, CAST - MSSQL 에서 데이터 변환할 때 사용하는 함수 CONVERT, CAST 사용법 * 출처

Naver Blog

MSSQL - 특정 문자 유무 확인

MSSQL - 특정 문자 유무 확인 - MSSQL에서 CHARINDEX를 이용하여 문자를 찾을 수 있다. CHARINDEX 사용법 - 대상문자열에 찾을 문자가 있으면, 해당 위치를 출력하는데, 0보다 작은 값이 나오므로 이런 점을 이용하여 문자를 찾는다. * 출처

Naver Blog

Kotlin - 객체 지향 프로그래밍 용어

Kotlin - 객체 지향 프로그래밍 용어 - 간단히 객체 지향 프로그래밍에서 사용하는 용어를 다루는 글이다. 객체 지향 프로그래밍 용어 * 출처

Naver Blog

자바 기초 57 - clone() 복사 기능

자바 기초 57 - clone() 복사 기능 - 자바 API에는 clone()를 통해 해당 오브젝트를 복사할 방법이 있다. clone() 예시 - clone()은 Object 클래스에서 제공하지만 무조건 복사 기능을 수행하면 문제(무분별한 복사로 독립성 문제가 발생하며 메모리 할당 및 독립성을 가지는 깊은 복사가 아닌 얕은 복사 기능을 수행)가 발생할 수 있다. - clone()의 대상은 반드시 Cloneable 인터페이스를 구현하여 Object.clone()이 가능하다는 것을 증명하기 위해 대상 클래스에서 Cloneable 인터페이스를 구현하여 CloneNotSupportedException 예외 발생을 막는다. - 또한, Cloneable 인터페이스 구현 시 반드시 재정의해야 하는데, 재정의를 안 할경우 구현.......

Naver Blog

자바 기초 58 - 접근제한자 사용 대상

자바 기초 58 - 접근제한자 사용 대상 - 자바의 접근제한자 사용 대상을 다룬 글이다. 접근제한자 사용 대상

Naver Blog

자바 알고리즘 - 기수 변환

자바 알고리즘 - 기수 변환 - 기수란 수를 세는데 기준이 되는 수를 의미한다. - 흔히 사용하는 기수로는 10진수가 있고, IT에서 2진수와 8진수 16진수를 들어봤을 것이다. 기수 변환 - 위와 같이 conversion이란 메서드를 이용하여 정수 x를 r진수로 변환할 값의 각 자리의 문자를 char형 배열 d에 넣어두고 해당 자릿수를 반환하는 메서드이다. - 한자리로 표현할 수 있는 수는 1부터 9까지 존재하기 때문에 10부터 알파벳이 적용되는데, A~Z까지 사용할 경우 35까지 표현할 수 있다. - 그런 의미에서 conversion 메서드는 10진수 값을 원하는 2~ 36진수에 맞춰 변환할 수 있다. - 진수 변환 시 값은 차례대로 떨어지기 때문에 for문을 이용하.......

Naver Blog

자바 알고리즘 - 선형 검색

자바 알고리즘 - 선형 검색 - 선형 검색이란, 일렬로 된 배열을 좌측에서 오른순으로 차례대로 탐색하는 방법이다. - 시간 복잡도 : O(N) 선형 검색 - 먼저 검색할 내용을 담을 배열을 정해둔 뒤, 배열 안에 입력값이 있는지 확인한다. - 만약 있을 경우 해당 값을 반환하지만, 없을 경우 -1을 반환하여 존재 유무를 확인한다.

Naver Blog

자바 알고리즘 - 보초법

자바 알고리즘 - 보초법 - 처음부터 끝까지 검색 내용을 찾는 방법인 선형검색은 높은 검사비용이 필요한데, 이를 줄인 방법이 보초법이다. - 선형검색에 알고 싶다면, 아래글을 참조하세요. 보초법이란? * 선형 검색의 조건은 아래와 같다. 1. 검색할 대상에서 검색 값과 같은 요소를 찾는 경우 2. 검색 값과 같은 요소를 찾지 못하면 값을 찾지 못하고 배열의 끝을 지나갈 경우 - 2의 경우를 대비하여 만들어진 것이 보초법으로, 검색 전 배열의 끝 부분에 검색값을 요소로 넣어, 검색 시 배열의 끝을 지나가지 않게 하는 방식이다. 보초법 예시

Naver Blog

자바 알고리즘 - 이진검색

자바 알고리즘 - 이진검색 - 이전의 선형 검색과 달리, 이미 정렬된 데이터에서 키로 검색하는 방법 중 하나로, 선형검색보다 빠른 검색이다. 이진검색 방식 1. 검색대상인 배열은 무조건 순차적이여야 한다.(오름차순 또는 내림차순 형식) 2. 검색 시 배열의 절반에서 검색값과 비교하여 일치 여부를 확인한다. 3. 불일치 할 경우 검색 값이 비교 값보다 큰 값이거나 작은 값인지 확인한다. 4. 큰 경우 절반부터 맨 끝, 작은 경우 절반에서 맨 앞까지 값을 검색대상으로 변경한다. 5. 2번부터 4번의 방식을 다시 실행한다. 이진검색 예제

Naver Blog

자바 알고리즘 - 해싱 탐색

자바 알고리즘 - 해싱 탐색 - 특정 계산으로 자료 저장 주소를 알아내는 탐색 방법이다. - 해싱 탐색은 주어진 키 값을 갖는 레코드를 반복적인 비교를 통해 찾는 것이 아닌, 함수로 산출한 주소로 저장 위치에 바로 접근 가능한만큼 모든 원소에 대해 접근 시간이 동일하다.(효율은 그렇게 좋진 않다.) - 키 값과 함수로 산출된 주소를 구해 저장 위치를 구하는 만큼, 주소를 담은 테이블이 존재하며 한 영역엔 반드시 하나의 데이터만 존재해야한다. - 만약, 해쉬 충돌(같은 위치에 2개의 다른 값이 존재)이 발생하면 이미 할당된 해쉬값 위치의 다음 빈 위치에 할당하는 방법으로 해결할 수 있다. * 출처

Naver Blog

자바 알고리즘 - 자연 정렬과 문자열 정렬의 차이

자바 알고리즘 - 자연 정렬과 문자열 정렬의 차이 - 자연 정렬이란, 숫자 부분의 순서를 자연스럽게 맞춰주는 정렬으로, 일반적인 문자열 정렬과 차이가 있다. - 자연 정렬은 Array.binarySearch(Object[] a, Object key)를 이용하여 해당 키에 맞춰 정렬할 순서를 가린다. - 문자열 정렬은 Array.sort(Object[] a) 를 이용하여 요소에 숫자가 들어가 있어도 값은 무조건 문자열로 인식하여 문자열로 정렬한다. - 문자열 정렬 시 문자열 길이로 정렬하고 싶을 경우 Comparable<T> 인터페이스의 compareTo 메서드를 직접 구현해야한다. 자연 정렬과 문자열 정렬의 차이 - 문자열 정렬은 숫자를 숫자로 보지 않고 문자 기준으로 정렬한다. - .......

Naver Blog

웹 애플리케이션 - 톰캣 서비스 중지하는 중 해결 방법

웹 애플리케이션 - 톰캣 서비스 중지하는 중 해결 방법 - tomcat의 서비스를 다시 시작할 경우 가끔 중지하는 중으로 뜨되, 서비스 상태를 변경하지 못할경우가 있다. 톰캣 서비스 중지하는 중 해결 방법 1. cmd창을 킨다. 2. cmd창에 아래 내용을 순서대로 입력한다. - tasklist를 쓸 경우 현 서비스들의 pid번호를 확인 할 수 있다. 이 때 톰캣의 pid번호를 확인한다. - 그 이후 taskkill /f /pid 명령어 다음 tomcat의 pid번호를 입력하면 해당 서비스가 강제 중지 된다.

Naver Blog

자바 알고리즘 - 유클리드 호제법

자바 알고리즘 - 유클리드 호제법 - 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘을 얘기한다. - 2개의 자연수(a: b보다 큰 수, b:자연수)와 a를 b로 나눈 나머지를 r이라고 하면 a와 b의 최대공약수는 b와 r의 최대 공약수와 같은데, b를 r로 나눈 나머지 r2와 r을 r2로 나눈 나머지를 구하는 방법을 반복하여 나머지가 0이 되었을 때 나오는 값이 a와 b의 최대공약수이며 이를 구하는 방법이다. 유클리드 호제법 * 출처

Naver Blog

자바 알고리즘 - 하노이의 탑

자바 알고리즘 - 하노이의 탑 - 하노이의 탑이란 세개의 기둥을 가지고 1번째 기둥에 꽃힌 각기 다른 크기의 원반을 3번째 기둥으로 이동횟수가 가장 적은 방식으로 옮겨 꽃는 걸 말한다. - 특징은 다음과 같다. 1. 모든 원반의 크기는 다르다. 2. 작은 원반이 위에, 큰 원반이 아래에 위치해야한다. 3. 원반은 반드시 1개씩만 옮길 수 있다. 하노이의 탑 - 기둥이 3개이기 때문에 기둥 번호를 1,2,3으로 하고 원반수(n)를 입력 * 출처

Naver Blog

Kotlin - 세이프 콜과 단정기호

Kotlin - 세이프 콜과 단정기호 - 세이프 콜과 단정기호에 대해 알아보자 세이프 콜 - 변수 뒤에 ?.를 사용하여 null에 대해 방지하는 방식으로 사용한다. - 앞의 변수가 null이 사용 가능한 자료형일 때 변수값이 null일 경우 뒤의 length가 미실행되도록 해준다. - 결국, ${str?.length}는 ${str}로 처리가 되는 셈이다. not-null 단정기호 - 변수 뒤에 !!.를 붙여서 사용해서 null이 아니라고 단정하는 기호이다. - 만약 실행 시 !!. 기호 앞의 변수가 null일 경우 null로 인해 예외가 발생한다.

Naver Blog

Kotlin - if문

Kotlin - if문 - 코틀린에서도 조건에 따라 실행할 수 있는데 사용되는 문법이다. - 코틀린에서의 if문은 다른 프로그래밍 언어보다 더욱 더 간략화하여 사용한다. if문 - if문은 조건과 조건을 제외한 경우에 맞춰서 실행 할 수 있다. - 코틀린에서는 in연산자와 ..를 사용하여 범위를 지정할 수 있다.

Naver Blog

Kotlin - when

Kotlin - when - when을 통해 다양한 조건으로 실행 할 수 있다. when - when()에 인자값을 작성 또는 미작성 한 다음 사용할 수 있다. - 만약 인자값을 미작성 할 경우 조건에 맞추기 위해 밖의 변수를 사용하는 방법이 있다. - 변수의 타입이 정해지지 않았을 경우 변수의 타입을 Any로 설정하자

Naver Blog

Kotlin - for문

Kotlin - for문 - 코틀린에서 반복 실행하는 명령문중 하나이다. - 선언한 변수와 해당 변수의 조건을 준 뒤, 변수값을 증감시켜 조건이 충족될때까지 반복 실행한다. for문 예시 1(일반 작성) - for문 안에 작성한 변수의 값이 in 다음 컬렉션 또는 범위에 맞춰 반복한다. - 만약, 증가하는 것이 아닌 아래로 감소하는 경우 큰 값과 작은 값 사이에 downTo키워드를 작성하여 실행시킨다. for문 예시 2(반복 변수값의 간격을 벌릴 경우) - 기존 for문 조건 작성뒤에 step 키워드로 증감값을 작성하여 간격이 무조건 1이 아닌 2이상의 값을 늘리거나 줄일수 있다.

Naver Blog

Kotlin - 의사 코드(Pseudo-code)

Kotlin - 의사 코드(Pseudo-code) - 프로그래밍 언어가 아닌, 우리말로 프로그램의 수행 내용을 간략히 서술한 코드 - 우리 말로 수행 내용을 작성한 만큼 좀 더 직관적이다. 의사 코드(Pseudo-code) 예제(*로 삼각형 출력) - 반복문의 전체 줄 수만큼 반복하여 논리적인 사고를 좀 더 명확히 할 수 있다.

Naver Blog

Kotlin - while문, do-while문

Kotlin - while문, do-while문 - 코틀린에서 제공하는 반복문 중 하나로, 조건식에 맞춰 반복 실행을 한다. while문 작성법 - 위와 같이 while()의 조건식에 맞춰 안의 내용이 실행되는데, 반복 실행할 내용에 조건식이 false로 되는 내용을 안 적으면, 무한 루프(반복)이 발생한다. do-while문 작성법 - 일반 while문과 달리, 앞에 do{ 반복 실행 내용}이 붙는데, 이 내용은 조건식과 상관없이 반드시 반복 실행 내용을 한번 실행하는 문법이다. - do-while문도 반복 실행 내용에 조건식이 false로 되는 내용을 적지 않으면, 무한 루프(반복)이 발생한다.

Naver Blog

Kotlin - return

Kotlin - return - 조건 또는 반복문 실행 시 값을 반환할 때 사용하는 키워드이다. return 작성법 - return 키워드는 해당 함수에서 값을 반환할 때 사용하는데, 해당 키워드로 인해 return이후의 내용은 실행되지 않는다. - 만약 특정 자료형을 반환하지 않는 Unit 자료형일 경우 return을 생략할 수 있다. - 그냥 return문 자체를 생략하는 것도 가능하다. - return 키워드는 해당 함수에서 값을 반환할 때 사용하는데, 해당 키워드로 인해 return이후의 내용은 실행되지 않는다. return을 생략한 람다식, 익명함수를 함수에 할당한 경우 - return 생략하고 내용을 가진 람다식 또는 익명 함수를 함수에 할당할 때 해당 익명 함수가 함수에 할.......

Naver Blog

Kotlin - break, continue

Kotlin - break, continue - 주로 조건 또는 반복문 실행 시 사용하는 키워드이다. break 예시 - break : 특정 지점에서 반복을 중단하는 키워드 - i가 5일 경우 반복문이 끝난다. label을 이용한 break - i : 1 j : 2일때 @first 라벨에 break 키워드를 실행하여 한줄만 출력된다. continue 예시 - continue : 반복문의 특정 지점에서 내려가지 않고 위에서 시작하는 키워드 label을 이용한 continue - j : 2일때 @first 라벨에 continue 키워드를 실행하여 첫번째 for문으로 이동되어 i가 증가한 값으로 다시 실행된다.

Naver Blog

Kotlin - 예외 처리

Kotlin - 예외 처리 - 프로그램 실행 시 실행 의도와 다른 데이터로 인해 작동하지 못하고 멈추는 경우가 발생하는데, 이를 확인하기 위해 사용하는 방법이다. 예외 처리 상황 1. 잘못된 시스템 호출로 인해 발생하는 문제 2. 연산할 수 없는 값의 문제(무한에 가까운 값들) 3. 실행 시 메모리 부족 또는 할당 실패 4. 입력형식이나 입력 값이 없는 경우 문제 5. 실행 기기의 문제 예외처리 예제(try-catch-finally) - try문은 실행 시 예외가 발생하면 중단하는 영역이다. - catch문의 매개변수에 예외처리 유형을 작성한 뒤 해당 예외에 맞춰 처리한다. - finally문은 위와 상관없이 반드시 실행하는 영역이다.(생략해도 상관없다) 예외처리 내.......

Naver Blog

Kotlin - 지연 초기화(lateinit, lazy)

Kotlin - 지연 초기화(lateinit, lazy) - 전역 변수로 선언할 때, 초기화를 나중에 하기 위해 null값으로 지정한 뒤, 사용하는 시점에서 초기화를 하는 경우가 있는데 이를 lateinit과 그 반대의 lazy 키워드를 사용하여 초기화를 한다. lateinit 사용 방법 - initlate 키워드는 반드시 var 키워드를 사용하여 선언한 경우에만 사용가능하다.(val, primitive type 사용 불가) * 여기서 primitive type은 byte,int, Double 등의 코틀린 제공 기본 타입을 의미한다. - getter/setter를 정의할 수 없다. lazy 사용 방법 - lazy 키워드는 lateinit과 반대의 조건을 갖추는데.. 기존 val 변수 선언 시 by lazy를 추가하여 변수를 선언과 초기화를 동시.......

Naver Blog

Kotlin - tailrec(꼬리재귀함수)

Kotlin - tailrec(꼬리재귀함수) - 재귀란 자신을 다시 참조하는 방법으로 프로그래밍 언어에선 보통 재귀함수를 사용하여, 일정 값에 도달할 때까지 자기 자신 참조를 하는 방식에 쓰는데, 만약 그렇지 않다면 무한 호출로 인해 스택 오버플로우가 발생한다. - 코틀린에서는 tailrec 키워드를 사용하여 무한 호출을 벗어나는 방법을 구현할 수 있다. tailrec(꼬리재귀함수) 작성법 - 일반적인 재귀함수는 실행 할 때 마다 계속해서 자기 자신을 호출하기 떄문에, 반복되는 횟수가 높을 수록 메모리 부담감이 심한데, 꼬리재귀함수를 사용하면, 재귀 함수 사용 시 계산을 먼저 한 다음, 자기 자신을 호출하기 떄문에 메모리 사용에 적합하다.

Naver Blog

Kotlin - 함수형 프로그래밍

Kotlin - 함수형 프로그래밍 - 보통 프로그래밍을 배우면서 객체 지향 / 절차 지향 프로그래밍을 들은 적이 있는데, 함수형 프로그래밍을 알게되어 작성한 글이다. 함수형 프로그래밍의 특징 1. 순수 함수로 같은 인자에 대해 항상 같은 값을 반환하며, 외부에 영향을 미치지 않을 수 있다. 2. 함수를 일급객체(:=일급 함수)로 생각하여, 함수의 인자를 전달하거나 반환값에 사용되거나 변수에 담을 수 있는등,, 다양한 방식의 함수형 프로그래밍이 가능하다. 3. 일급객체인 함수로 고차함수와 람다식을 사용할 수 있다. 4. 간단히 이해하자면, 함수 참조하여 변수로 사용한 방식으로 간결하고 효율적이고 보다 안전한 프로그래밍을 할 수 있.......

Naver Blog

Kotlin - 확장 함수

Kotlin - 확장 함수 - Any 클래스를 이용하여 특정 대상 클래스에 함수를 추가할 수 있는 방법이다. 확장 함수 예시 - 위와 같이 Example이란 클래스가 있다고 할 때, 확장함수를 통해 Example 클래스에 printFunctionType(i : Int)함수를 새로운 멤버 메서드로 추가한 것으로 기존 표준 라이브러리를 수정할 필요 없이 확장할 수 있는 방법 - 만약, 확장함수와 동일한 멤버함수 혹은 메서드가 존재 시 확장 함수보다 멤버 함수 혹은 메서드가 먼저 실행된다. * 출처

Naver Blog

Kotlin - 중위 함수

Kotlin - 중위 함수 - 함수 뒤에 소괄호를 붙이지 않고 직관적인 이름을 사용하는 중위 표현법을 사용한 함수로 일종의 연산자를 구현할 수 있는 함수를 의미한다. 중위 함수의 조건 1. infix 키워드를 fun앞에 사용하여 정의한다. 2. 일종의 연산자를 구현할 수 있는 함수인만큼 하나의 매개변수를 가져야한다. 3. 멤버 메서드나 확장 함수여야 한다. 중위 함수 예시 - 위의 multiply()함수에 infix 키워드를 작성하여 중위 함수를 정의하고 매개변수를 넣고, 함수를 확장한 형태이다.

Naver Blog

Vue.js - 커스텀 이벤트

Vue.js - 커스텀 이벤트 - props의 반대로 하위 컴포넌트의 이벤트를 부모 컴포넌트로 전달할 수 있다. - 하위 컴포넌트에 커스텀 이벤트를 주면 상위 컴포넌트에서도 사용할 수 있는 게 장점이다. - v-model의 lovingVue의 값은 checked prop으로 전달되며, $emit을 통해 change이벤트가 적용될때마다 checked값이 업데이트된다. - 하위 컴포넌트인 childComponent에서 sendEvent() 메서드가 실행 시 update이벤트가 발생되면서 상위 컴포넌트인 루트 컴포넌트의 v-on 디렉티브로 update 이벤트를 받아서 showAlert() 메서드를 실행한다. * 출처

Naver Blog

Vue.js - .sync 수식어

Vue.js - .sync 수식어 - 양방향 바인딩이 유지보수에서 중요한 만큼 자식 속성을 변경하는 경우, 부모 속성에 영향을 미치기에, .sync는 2.0버전에서 삭제됬지만, 재사용 가능한 컴포넌트를 만들 때 유효한 기능이 있으며, 부모 상태에 영향을 미치는 만큼 코드를 일관적이고 명백하게 만들어야 하기 위해 다시 만들어진 기능이다. - vue의 2.3.0+에서 추가된 수식어로 prop에서 양방향 바인딩이 필요한 경우에서 자식 컴포넌트가 변이 코드 없이 부모 컴포넌트를 변경할 수 있게 될 경우 사용한다. .sync 수식어 사용 방식 - v-bind와 .sync 수식어는 표현식과 함께 동작하지 않는다. (표현식 > v-bind:title.sync="doc.title + &.......

Naver Blog

Vue.js - Slots

Vue.js - Slots - 부모 컴포넌트에서 자식 컴포넌트에게 slot을 이용해 템플릿을 전달하는 컨텐츠 배포 방법이다. - 현재 2021.11.28 slot과 slot-scope는 Vue 3버전에서 공식적으로 삭제된다고 하기 때문에 대체 디렉티브인 v-slot을 써주자 Slots 기본 - slot을 이용하여 컴포넌트 렌더링 시 컨텐츠 배포를 할 수 있다. 이름 있는 Slots - 2.6.0+에서 업데이트된 기능으로 기존 슬롯에 이름을 적용 (slot > v-slot) 방식 - template에 v-slot:name 을 이용하여 렌더링 이후 slot을 적용하는 방법이다. - 만약 v-slot을 쓴 template으로 싸여있지 않은 내용은 template v-slot:default 슬롯에 해당하는 것으로 간주되기 때문에 1번과 2번의 작.......

Naver Blog

Vue.js - keep-alive 동적 컴포넌트

Vue.js - keep-alive 동적 컴포넌트 - vue의 초기 버전에선 탭 인터페이스에서 컴포넌트를 전환 시 is특성을 사용하여 컴포넌트를 전환했었다. - keep-alive는 컴포넌트를 전환 할 때 재 렌더링을 할 수 밖에 없는 경우 동적 컴포넌트를 재생성하는데, 이를 해결하는 방법이다. - component를 keep-alive로 감싸서 탭 인터페이스에서 컴포넌트 전환 시 상태를 유지할 수 있을 뿐만 아니라 재 렌더링 하지 않는다. * 출처

Naver Blog

Vue.js - 비동기 컴포넌트

Vue.js - 비동기 컴포넌트 - 애플리케이션의 용량이 큰 경우, 앱을 나눠 필요한 경우에 서버로부터 컴포넌트를 로드해야 할 수 있는데, vue에선 팩토리 함수를 이용해 컴포넌트를 비동기적으로 정의할 수 있다. - 위의 팩토리함수는 function(resolve, reject){ .... }를 의미하는데, 해당 함수는 resolve란 서버에 컴포넌트 정의를 했을 때 호출되는 내용과 reject(reason)을 사용하여 로딩이 실패한 경우에 대응할 수 있다. - 웹팩이 Ajax를 통해 로드한 번들들을 이용해 코드를 자동으로 분할하는 require문법이다. * 웹팩 내용 참조 - 또한 팩토리 함수에서 Promise를 반환할 수 있다고 한다. - local registration(지역 등록)을 이용하면 pr.......

Naver Blog

JavaScript - 화면 인쇄하기

JavaScript - 화면 인쇄하기 - window객체의 print()를 사용해서 화면을 인쇄할 수 있다. - window객체는 전역 객체(최상위 객체)로 print 메서드를 이용해서 화면을 인쇄할 수 있다. 화면 인쇄 방법 - window객체의 print()는 document의 body를 인쇄한다. - javascript가 아닌 html문서에서 작성 시 body 태그의 onload속성에 "window.print();"를 적어주면 적용할 수 있다. 적용 가능한 브라우저 * 출처

Naver Blog

JavaScript - 팝업 인쇄 선택 후 닫기

JavaScript - 팝업 인쇄 선택 후 닫기 - 이전 글인 화면 인쇄하기에 이어진 글이다.(화면 인쇄하는 방법 하단 참조) - 팝업 내용을 인쇄 시 프린트 이전/이후 시점에서 선택 이후 팝업을 닫을 수 있다. 팝업 인쇄 선택 후 닫는 방법 Internet Explore와 firefox 브라우저만 적용되는 이벤트 - 위의 내용은 Internet Explore와 firefox 브라우저만 적용 되는 이벤트인데, Chrome과 Opera 등의 브라우저에서는 해당 이벤트 처리가 불가능하다. - 그래서 window객체의 matchMedia('print')를 이용해서 해당 이벤트를 적용할 수 있도록 한다. 다른 브라우저까지 적용되는 이벤트 1. window객체 인쇄 beforePrint()와 window객체를 닫는 aft.......

Naver Blog

Vue.js - 엘리먼트 & 컴포넌트 접근

Vue.js - 엘리먼트 & 컴포넌트 접근 - vue에선 다른 컴포넌트와 DOM 엘리먼트에 직접 접근하는걸 피하는 것이 좋지만, 접근이 허용되는 경우가 있다. 루트 엘리먼트 접근 - 일반적인 작은 크기의 어플리케이션이나 적은 수의 컴포넌트에서 접근 방식에서는 유용하지만, 크기가 커지거나 많아질 경우 Vuex란 상태관리 라이브러리를 사용하는 것이 유용하다. * Vuex 다운로드 * Vuex 가이드 컴포넌트 인스턴스 접근 * 부모 컴포넌트 인스턴스에 접근하는 경우 - $root와 비슷하게 $parent속성을 이용하여 자식 요소에서 부모 인스턴스에 접근할 수 있다. - 이 방식은 컴포넌트간의 공유가 이뤄져야하는 라이브러리(예: 구글 Maps 컴포넌트)에서.......

Naver Blog

Vue.js - 의존성 주입

Vue.js - 의존성 주입 - 이전 글에서 부모 컴포넌트 인스턴스에서 접근한 글을 적은 적이 있는데, 어플리케이션의 크기가 커지고 컴포넌트 수가 많아지면서 중첩된 컴포넌트에서의 $parent 속성은 확장 가능한 방법이 아니라고 한다. - 이런 경우 $parent 대신 provide와 inject 옵션을 통해 의존성 주입을 사용하여, 중첩 컴포넌트에서 $parent 기능을 수행한다. 의존성 주입 - provide 옵션은 모든 하위 자식들에게 제공하고자 하는 data 및 methods를 특정할 수 있게 해주는데, google-map 컴포넌트의 getMap내용을 적용할 수 있다. - $parent와 달리 부모 컴포넌트 인스턴스의 모든 요소에 접근하지 않아도 getMap 메소드에 접근 할 수 있다.......

Naver Blog

Vue.js - 프로그래밍적 이벤트 리스너

Vue.js - 프로그래밍적 이벤트 리스너 - Vue 인스턴스에서 이벤트 인터페이스를 사용 할 수 있는데, 이를 다뤄보는 글이다. 프로그래밍적 이벤트 리스너 - 라이프사이클 훅(Vue 인스턴스 생성 시 가장 먼저 호출되는 함수들)에서만 picker에서 접근 할 수 있는 경우, picker가 컴포넌트 인스턴스 안에 저장되어야 하는점 - 설정 / 제거 코드가 분리되어 있기 때문에 유지보수하기 어렵다. - $once를 이용하여 단발성 이벤트인 beforeDestroy를 실행 시켜 컴포넌트를 destroy하기 직전에 datapicker를 destory할 수 있도록 하는 방식이다. * 출처

Naver Blog

Vue.js - 조건부 렌더링(v-if, v-show)

Vue.js - 조건부 렌더링(v-if, v-show) - 조건이 true일 경우 블록을 렌더링하는 v-if, v-show 디렉티브이다. 조건부 렌더링(v-if, v-show) 예시 - v-if 디렉티브 같은 경우 두번째 조건을 줄 경우 v-else-if를 쓴다.(Vue.js 2.1.0+부터 추가된 기능이다.) - v-if 디렉티브에서 조건이 아닐 경우 v-else를 쓰며 v-else는 v-if와 v-else-if 뒤에 나와야 한다. * 결과 - 조건을 준 뒤, 해당 조건이 true일 경우 실행된다. * 출처

Naver Blog

vue.js - 리스트 렌더링(v-for)

vue.js - 리스트 렌더링(v-for) - vue.js에서 반복적인 데이터를 렌더링할 때 v-for를 사용한다. - 특히, v-for는 배열을 기반으로 데이터를 렌더링하는데, item(반복되는 배열 엘리먼트) in items(실제 사용 데이터 배열) 형태의 문법을 띈다. 리스트 렌더링(v-for) 예제 * 결과 - array1이란 배열에서 v-for을 이용하여 값을 꺼내쓸 수 있다. * 출처

Naver Blog

Vue.js - component Props option

Vue.js - component Props option - 모든 컴포넌트 인스턴스의 하위 컴포넌트 템플릿에 상위 데이터를 직접 참조할 수 없고 하면 안되지만, props 옵션을 이용하여 데이터를 전달할 수 있다. * 출처

Naver Blog

JQuery - closest()을 이용한 tr 위치 확인

JQuery - closest()을 이용한 tr 위치 확인 - table에서 tr 태그 안의 element를 클릭했을 때 해당 tr의 순번을 필요로 할 때가 있는데, 그걸 다루는 글이다. closest()을 이용한 tr 위치 확인 방법 - a태그를 클릭 시 해당 엘리먼트를 fnTrPlace()의 매개변수에 넣는다. - closest('tr')를 쓸 경우 가장 가까운 부모 요소에서 tr를 찾는다. - closest('tr')에서 찾은 tr과 같은 엘리먼트 중 이전 엘리먼트 모두를 찾기 위해 prevAll()의 length를 출력하면 해당 인덱스를 확인 할 수 있다. * 결과 - 1번째 클릭 2번째 클릭

Naver Blog

Vue.js - transition

Vue.js - transition - Vue에서 transition을 이용해서 Dom에 애니메이션 효과를 부여할 수 있다. transition효과를 적용한 다양한 방법을 제공하는 도구 1. CSS 트랜지션 및 애니메이션을 위한 클래스를 자동으로 적용합니다. 2. Animate.css와 같은 타사 CSS 애니메이션 라이브러리 통합 3. 트랜지션 훅 중에 JavaScript를 사용하여 DOM을 직접 조작 4. Velocity.js와 같은 써드파티 JavaScript 애니메이션 라이브러리 통합 transition 예제 * 결과 - show1를 클릭 시 사라지거나 보여짐 - show2를 클릭하면 애니메이션 효과 이후 안보이거나 보여진다. - show3를 누르면 표시여부에 따라 status에 표시여부를 표시한다. * 출처

Naver Blog

Jquery - label태그 text값 가져오기

Jquery - label태그 text값 가져오기 - 제이쿼리를 쓰다가 label 태그로 text값을 가져오는 방법을 알게되어 작성한 글이다. label태그 text값 가져오기 * 결과 - label for속성을 이용하여 값을 가져온다.

Naver Blog

SQL(MySQL/MariaDB) - Auto Increment

SQL(MySQL/MariaDB) - Auto Increment - MySQL/MariaDB에서 보통 정수값(순번, 인덱스 등)을 자동으로 올려주는 옵션을 의미한다. - insert 시 auto increment 설정된 컬럼은 따로 작성할 필요가 없다. - 기본키에만 해당 옵션이 가능하다. Auto Increment 작성법

Naver Blog

Jquery - checkbox checked 속성 변경

Jquery - checkbox checked 속성 변경 - 일반적으로 체크박스는 페이지 이동 시 checked 속성을 주지 않지만, 이 글은 페이지 로딩 시 속성에 checked를 적용 시 변경하는 방법을 작성하고자 한다. Jquery - checkbox checked 속성 변경 - 'nm' 이름을 가진 체크박스에서 value가 'Y'인 경우 미리 checked란 속성을 준 경우 해당 'nm' 태그들의 onclick시 'fnChkYn'에 해당 태그만 속성에 체크되도록 설정하는 방법이다.

Naver Blog

JQuery - clone()을 이용한 복사

JQuery - clone()을 이용한 복사 - 제이쿼리에서는 html요소를 복사할 수 있는 clone()을 제공한다. - 이런식으로 복사할 요소의 clone을 변수에 저장한 뒤, 특정 요소에 추가할 수 있다.

Naver Blog

Jquery - radio 버튼 클릭 시 checked 속성 변경

Jquery - radio 버튼 클릭 시 checked 속성 변경 - radio버튼의 속성에서 버튼 클릭으로 check값 변경 시 checked 속성을 바꾸는 방법이다. radio 버튼 클릭 시 checked 속성 변경 방법

Naver Blog

Vue.js - Template 문법

Vue.js - Template 문법 - Vue.js에선 랜더링된 DOM을 Vue 인스턴스의 데이터에 선언으로 바인딩할 수 있는 html기반 템플릿 구문을 사용하는데, 데이터 바인딩의 기본 형태는 'Mustache' 구문(이중 중괄호)라고 한다. - 위와 같이 Mustache 구문은 데이터 객체의 msg 속성이 변경될 때마다 갱신이 되는데, 태그에 v-once를 붙여서 데이터 변경 시 업데이트를 막을 수 있다.(이럴 경우 같은 노드의 바인딩에 영향을 준다. - 근데 Mustache 구문은 html이 아닌 일반 텍스트로 데이터를 해석하는데, html로 출력하려면 v-html을 사용해야한다. - Mustache 구문에서 html 속성을 쓸 경우 'v-bind:속성명'로 사용된다. v-html, v.......

Naver Blog

Vue.js - 속성값 binding 하는 방법

Vue.js - 속성값 binding 하는 방법 - 이전에 html 태그의 속성을 v-bind를 통해 적용한다고 했는데, 그에 대해 다루는 글이다. v-bind를 이용한 href 속성 설정 * 결과 * link1을 제외한 link2, link3의 결과 - HTML 속성에는 {{}}를 사용할 수 없기때문에 v-bind 디렉티브를 사용한다. - ':href'는 'v-bind:href'의 약어로 둘다 동일한 문법이다. * 출처

Naver Blog

Vue.js - class binding을 이용한 css 적용방법(style binding)

Vue.js - class binding을 이용한 css 적용방법 - 저번엔 속성값을 binding해봤는데, class로도 바인딩이 된다. - style 태그에서 작성한 css 내용을 class 바인딩을 통해 css 적용 방식이다. class binding을 이용한 css 적용방법 * 결과 - 클래스로 주는 방식과 Vue 인스턴스의 data를 'v-bind:class'로 주는 방식과 같은걸 볼 수 있다. - v-bind:class를 이용하여 Vue 인스턴스의 data로 원하는 class명으로 변경하면서 동적으로 클래스를 적용할 수 있다. * 출처 https://v3.ko.vuejs.org/guide/class-and-style.html

Naver Blog

Vue.js - Inline style binding

Vue.js - Inline style binding - v-bind을 이용한 Inline-style 적용 방법 Inline style binding 방법 * 결과 - 'v-bind:style'을 이용하여 적용한 방식이다. - "v-bind:style='{}' "를 이용하여 여러 data를 적용시킬 수 있다. * 출처

Naver Blog

Vue.js - form 입력 바인딩(v-model)

Vue.js - form 입력 바인딩 - Vue에선 form의 'v-model'을 사용해서 input, textarea element에 양방형 데이터 바인딩을 생성할 수 있다. - v-model의 특징은 항상 vue 인스턴스 데이터를 default값으로 처리하므로, select element에서 'v-model' 표현식의 초기값이 어떤 옵션에도 없으면, 선택없음 상태로 랜더링이 된다. form의 v-model 랜더링 - 'v-model'을 이용하여 랜더링 시 값을 바인딩할 수 있다. * 결과 * input, textarea 변경 시 - 내용에 맞춰 결과가 나온 걸 알 수 있다. * check box, radio button, select box 변경 시 - 각 선택값에 맞춰 값이 출력된다. * 출처

Naver Blog

Vue.js - form 수식어

Vue.js - form 수식어 - Vue에선 form 내용을 더욱 세밀하게 다루기 위해 form의 수식어가 존재한다. form 수식어 * 결과 - 입력 중(lazy 사용) - 입력 후(lazy 사용) - 입력할 때 원래 바로 되지만 focus가 사라지면 결과가 나온다.(지연 결과) - 11 입력 시(number 사용) - 입력한 건 string 타입의 숫자지만, number로 적용한 경우 타입 체크 시 number로 인식한다. - 공백 적용(trim 사용) - 맨 앞의 공백을 넣어도 focus가 사라지면 맨 앞의 공백이 사라진다.

Naver Blog

Vue.js - 클릭 이벤트

Vue.js - 클릭 이벤트 - 이전에 v-on:click에 대해 조금 다뤘던걸 보충하고자 작성한 글이다. - 'v-on:click'과 '@click'은 똑같은 기능으로 클릭 실행 내용을 적는다. v-on:click과 @click의 예제 * 결과 - 위의 2버튼 둘다 누를 경우 btnEvent란 methods가 동작된다. - '책' 이미지를 클릭 했을 경우 imageEvent methods가 동작된다. - data1과 data2의 input tag에 숫자를 적은 뒤 숫자 더하기 버튼을 누르면 두개의 숫자 합이 결과 다음에 나온다.

Naver Blog

JavaScript - 변수의 스코프

JavaScript - 변수의 스코프 - 스코프란 유효 범위를 말하는데, 자바스크립트에서 범위에 따라 구분된다. * 출처

Naver Blog

JavaScript - null과 undefined의 차이

JavaScript - null과 undefined의 차이 - null과 undefined의 차이점을 알게 되면서 작성한 글이다.

Naver Blog

JavaScript - Number 객체

JavaScript - Number 객체 - wrapper 객체로 이름처럼 원시 타입 값을 감싼 형태의 객체다. - 이름에서 볼 수 있듯이 숫자 값을 감싼 객체라고 볼 수 있다. - Number 객체는 Number 생성자 함수를 통해 생성한다. - 만약 new 연산자가 없는 상태로 사용했을 경우 Number 객체가 아닌 원시 타입 숫자를 반환하며, 문자 형태의 숫자를 값으로 넣었을 경우 형변환이 일어난다. - new Number()로 생성된 객체는 타입을 출력해보면 object로 출력되는걸 알 수 있다. - Number란 객체가 있기때문에 'Number.프로퍼티명'을 이용하여 해당 Number의 속성값을 도출할 수 있다. Number의 프로퍼티(속성) Number의 메서드(함수) * 출처

Naver Blog

JavaScript - 화살표 함수

JavaScript - 화살표 함수 - ES6에서 나온 함수로, ES6이상부터 쓸 수 있다. - 기존 함수의 function 키워드를 통해 만든 함수를 더 간단히 표현하기 위해 만들어진 함수이며 익명 함수이다. 화살표 함수 제한점 1. this, super에 대한 바인딩과 methods로 사용할 수 없다. 2. new.target 키워드가 없다 3. 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없다. 4. 생성자로 사용할 수 없다. 5. yield(비동기 처리에 사용하는 키워드)를 화살표 함수 내부에서 사용할 수 없다. 화살표 함수 예제 * 출처

Naver Blog

JavaScript - Generator function

JavaScript - Generator function - 일반 함수와 달리, 사용법에 따라 여러 값을 반환하는 함수 - function*으로 시작하며, 안에 yield 키워드를 사용하여 호출방식에 따라 값을 반환한다. Generator 객체의 method * 출처

Naver Blog

SQL(ORACLE 기준) - 특정 테이블 데이터 복원

SQL(ORACLE 기준) - 특정 테이블 데이터 복원 - DBeaver tool을 쓰며 auto commit 기능을 맞춰서 DB를 다루다가 commit 후에 rollback으로 원하는 데이터를 복원하지 못해서 알게 된 방법이다. - 현재 시간과의 차이를 사이로 두고 복구하는 방식이다. - INTERVAL 이후에 시간을 작성하면 차이났던 시간에 있었던 데이터를 다시 되돌릴 수 있다. - 해당 시간은 MINUTE뿐만 아니라 HOUR도 가능하다.

Naver Blog

JSP / Servlet - 엑셀파일 생성 시 셀 서식 지정

JSP / Servlet - 엑셀파일 생성 시 셀 서식 지정 - jsp로 엑셀파일 구현 시 셀 서식을 변경할 수 있는 방법이다. 엑셀파일 생성 시 셀 서식 지정

Naver Blog

SQL(MySQL/MariaDB) - MD5 FUNCTION

SQL(MySQL/MariaDB) - MD5 FUNCTION - 단방향 암호화 알고리즘을 이용한 함수로 MD5()에 임의의 값을 넣어서 128비트의 해시값을 출력하는 보안 방식이다. - 이 방식은 주로 패스워드 암호화에 대해 사용하는데... 2006년 이후에는 SHA 계열 해시 함수로 대체되고 있다. - 위와 같이 MD5() 안에 임의의 문자열을 넣었을 경우 랜덤값이 출력되며 다른 문자열을 입력했읋 경우 같은 출력값이 나올 확률은 엄청, 매우 낮다.

Naver Blog

JavaScript - assign()

JavaScript - assign() - ES6부터 지원하는 객체를 병합하는 Object객체의 method이다. - target에는 빈 객체 리터럴을 줄수도, 목표 객체에 출처 객체를 반영시킨 객체가 나오게 할 수 있다. - sources는 말 그대로 목표객체에 담을 여러 객체들을 의미한다. - assign의 구문 3과 같이 목표 변수명에 출처 객체가 반영하면 병합된 객체가 반환된다(assign으로 새로운 객체를 반환하려면, target에 빈 객체를 줘야한다.) - assign을 사용할 경우 목표 객체의 속성과 출처 객체의 속성은 같으며, 출처 객체의 '열거 가능한 자체 속성'만 목표 객체로 복사한다. - 출처에 null 또는 undefined를 제공해도 예외는 발생하지 않지만, 대상 객.......

Naver Blog

Plugin - Live Server

Plugin - Live Server - HTML 페이지의 화면 구현을 바로 볼 수 있게하는 플러그인이다. - Vue.js의 개발 환경을 구현할 때 쓰는 플러그인 중 하나이다. Live Server 설치방법(Visual Studio Code 기반) 1. Visual Studio Code(이하 VSC)에서 확장 아이콘을 클릭한 뒤 Live Server를 검색하면 아래와 같이 나오는데 설치를 눌러주면 자동 설치가 되며 설치완료 시 아래와 같이 'Go Live'가 표시된다. 2. 플러그인의 브라우저를 설정하기 위해 제거 옆의 톱니바퀴 아이콘 - 확장설치 클릭 후 'ctrl + f'를 눌러서 'browser'를 검색하면 Custom Browser가 뜨는데 여기에 원하는 브라우저를 설정한다.(필자는 Chrome으.......

Naver Blog

Vue.js - Vue 객체

Vue.js - Vue 객체 - Vue.js의 애플리케이션의 객체를 의미한다. Vue 객체의 예제 - el에 html 요소중 태그를 작성한 뒤, 해당 태그 안에서 쓰는 값들은 data에서 작성된 내용이다. - Vue객체의 옵션을 쓰기 위해 '{{옵션명}}'으로 사용되는데, data도 동일하게 사용된다. - methods의 명칭을 바로 쓸 수 있다. * 출처

Naver Blog

SQL 문제 17 - WeatherObservation Station 12(HackerRank)

SQL 문제 17 - Weather Observation Station 12(HackerRank) * 문제 내용 * 결과 - 이전문제의 내용을 통합한 문제로 이번엔 CIRY명 맨 앞과 맨 뒤가 모두 모음이 아닌 경우(and)에 중복을 제외한 CITY를 출력하는 문제로 총 296개의 도시명이 출력되었다. - 오라클의 regexp_like('대상 컬럼명',정규식내용')을 이용한 문제풀이로 정규식의 맨 앞에 '^'를 붙여 맨 앞을 의미하고 맨 뒤에 '$'를 붙임으로써 맨 끝을 의미하며, 그리고 [] 안에 모음에 해당하는 'a','e','i','o','u'를 각각 '^'(부정)와 '|'을 이용하여 해당 모음이 아.......

Naver Blog

SQL 문제 18 - Higher Than 75 Marks(HackerRank)

SQL 문제 18 - Higher Than 75 Marks(HackerRank) * 문제 내용 * 결과 - 문제의 내용은 STUDENTS 테이블안에서 MARKS가 75보다 큰 경우 해당 NAME의 뒤에서 3번째부터 끝까지의 문자열을 찾아서 해당 문자열을 오름차순으로 정렬하란 문제다. - 정렬 시 MARKS가 75 초과한 NAME은 17개, 그 중 SUBSTR(NAME,-3)을 통해 NAME COLUMNE에서 NAME 뒷자리 3번째부터의 NAME을 추출한 뒤, 그것을 UPPER에 넣어 대문자로 변환한 값을 ORDER BY ASC로 오름차순하였다. * 출처

Naver Blog

SQL 문제 19 - Employee Names(HackerRank)

SQL 문제 19 - Employee Names(HackerRank) * 문제 내용 * 결과 - 간단히 보자면, NAME COLUMN을 알파벳순으로 정렬하는 문제다. - 정렬인 ORDER BY에 NAME 컬럼을 넣고 알파벳순으로 하기 위해 오름차순인 ASC를 적어주면 끝이다. * 출처

Naver Blog

SQL 문제 20 - Employee Salaries(HackerRank)

SQL 문제 20 - Employee Salaries(HackerRank) * 문제 내용 * 결과 - EMPLOYEE TABLE 에서 SALARY COLUMN 값이 2000보다 작고, MONTHS COLUMN의 값이 10보다 작은 결과에서 EMPLOYEE_ID ASC 순으로 출력하는 문제였으며 총 25개의 NAME이 결과로 출력됬다. * 번외 - 여기까지 똑같이 했다면 아래와 같은 축하문구가 나온다. * 출처

Naver Blog

SQL 문제 21 - ThePADS(HackerRank)

SQL 문제 21 - The PADS(HackerRank) * 문제 내용 - 1번 조건 1-1. 오름차순 이름 정렬 조회 1-2. NAME COLUMN 옆에 OCCUPATION COLUMN의 값 중 첫 대문자를 추출한 뒤 () 안에 적어서 NAME 옆에 붙인채로 출력 - 2번 조건 2-1. OCCUPATIONS TABLE에서 OCCUPATION COLUMN의 값을 그룹화한 뒤 총합 구하기 2-2. OCCUPATION COLUMN을 모두 소문자로 변환 2-3. 해당 총합을 오름차순으로 하기 2-4. 만약 총합이 같을 경우 해당 OCCUPATION COLUMN을 오름차순으로 출력하는 조건 * 결과 - 1번째 조건 1-1. ORDER BY NAME를 사용하여 오름차순 정렬 1-2. NAME COLUMN 옆에 REGEXP_SUBSTR(대상 COLUMN, 정규식, 시작위치)를 사용하여 OCCUPATION COLUMN.......

Naver Blog

SQL 문제 22 - Type of Triangle(HackerRank)

SQL 문제 22 - Type of Triangle(HackerRank) * 문제 내용 - 삼각형 원리를 다루는 문제이다. - A, B, C COLUMN 값을 두고 3개의 값이 같은 정삼각형, 2개의 값이 같은 이등변 삼각형, 그 외, 3개 값이 모두 다른 일반 삼각형, 2변의 합이 한변의 길이보다 작은 삼각형이 아닌경우의 4가지 결과를 두고 출력하는 문제 * 결과 - CASE문을 통해 해당 값에서 순차적으로 삼각형이 아닌경우, 모든 변의 길이가 같은 정삼각형, 2개의 변 길이만 같은 이등변삼각형 그외 일반 삼각형으로 조건을 나눈 방법이다. * 출처

Naver Blog

JAVA 문제 23 - 위클리 챌린지 8주차(8주차_최소직사각형)

JAVA 문제 23 - 위클리 챌린지 8주차(8주차_최소직사각형) * 문제 내용 - 가로, 세로 길이 중 큰 값을 구한 다음, 그 값을 어떻게 비교할지 구하는 문제 - 만약, 가로, 세로 길이의 가장 큰 길이를 구했지만, 한쪽 최고 길이가 다른 한쪽 최고 길이보다 클 경우 옆으로 눕혀서 수납할 때 가능하단 조건이 있기에, 가로는 세로길이의 큰 값을 세로는 가로길이의 큰 값을 비교하여 가장 큰 길이를 저장하는 문제 * 출력 내용 * 풀이 - 먼저 sizes 2차원 배열에서 현 배열 값 중 가로, 세로 길이를 비교한다. - 비교한 값에서 만약 가로가 세로보다 큰 경우 가로는 가로끼리, 세로는 세로끼리 비교하여 큰 값을 각각 가로와 세로에 저장한다. - 비교.......

Naver Blog

Kotlin - 가시성 지시자

Kotlin - 가시성 지시자 - 자바의 접근지시자와 비슷한 기능이라고 볼 수 있다. - 시작 위치에 따라 접근 여부를 판별하는 지시자인만큼 다양하게 접근 범위를 설정 할 수 있다. - 해당 지시자는 UML(통합 모델링 언어)의 방법으로 객체 지향 프로그래밍 소프트웨어를 개발할 때 산출물을 작성할 때 이걸 표기하기 쉽게 사용할 수 있다.

Naver Blog

Kotlin - 엘비스 연산자

Kotlin - 엘비스 연산자 - 엘비스 연산자란, 특정 변수에서 어떤 특징을 사용한다고 할 때 해당 변수가 null인 경우를 방지하여 null일 땐 그 특징이 아닌 정해진 값이 출력되도록 하는 연산자이다. 1. 변수1이 null일 때 '타입?'에 맞춰 null인데도 컴파일러가 정상 작동된다. 2. 변수2는 변수1.length인데 변수 1이 null이며, null의 length는 없으니 에러 3. 변수3은 변수1.?length인데 변수 1이 null일경우 -1이 변수 3에 초기화되어 에러가 발생되지 않는다. 4. 이처럼 엘비스 연산자는 기준변수가 null일경우 null의 특징은 null이므로 null일 때 null이 아닌 대체할 값으로 초기화하는 방법이다.

Naver Blog

SQL 문제 16 - WeatherObservation Station 11 (HackerRank)

SQL 문제 16 - Weather Observation Station 11 (HackerRank) * 문제 내용 * 결과 - 이전문제의 내용을 통합한 문제로 이번엔 CIRY명 맨 앞과 맨 뒤가 모두 모음이 아닌 경우(and)가 아니라 맨 앞이 모음으로 끝나지 않거나 맨 뒤가 모음으로 끝나지 않은 조건(or)에서 중복을 제외한 CITY를 출력하는 문제로 총 458개의 도시명이 출력되었다. - 오라클의 regexp_like('대상 컬럼명',정규식내용')을 이용한 문제풀이로 정규식의 맨 앞에 '^'를 붙여 맨 앞을 의미하고 맨 뒤에 '$'를 붙임으로써 맨 끝을 의미하며, 그리고 [] 안에 모음에 해당하는 'a','e','i','o',&.......