전체 글(206)
-
[내일배움캠프] TIL - 24.09.12(목)
Java 챕터의 2번째 과제에 대한 발제가 오늘 있었고 이번 과제는 '숫자 야구 게임' 을 구현하는 것이었다. 발제가 끝나고 바로 요구사항을 분석/정리 하였고 설계를 진행해 보았다. 상세한 설계는 아니지만 이번 프로젝트를 어떻게 풀어나갈지 실마리를 잡을 수 있었다. 특히 이전 과제의 경우 요구사항의 각 레벨에 따라 애플리케이션 구현 방식이 달라(특히 level01은 main 메서드에 작성해야 했음) 의도적으로 각 요구사항이 반영된 계산기를 따로 만들어 사용자가 선택하도록 구성하였는데, 이번 과제의 경우 요구사항의 레벨이 구현 단계의 느낌이 강해 하나의 애플리케이션을 작성하고 점차 기능을 확장 및 수정하는 방식으로 진행하기로 결정했다. 물론 단순히 요구사항의 느낌만으로 택한 방식은 아니다. 해당 방식을 통..
2024.09.12 -
[내일배움캠프] 숫자 야구 게임 구현 - 요구사항 정리 및 설계
두 번째 개인과제는 '숫자 야구 게임' 을 구현하는 것이다. 오늘은 해당 과제의 요구사항을 분석/정리한 뒤 생각해본 계획에 대해 적어본다. 요구사항을 분석/정리해 보니 전체적인 그림이 어느 정도 그려졌는데, 이전 '계산기' 구현 과제의 경우 요구사항 레벨 별로 구현방식이 정해져 있다보니 계산기를 레벨 별로 구현한 뒤 합치는 방식으로 진행을 하였는데, 이번 과제의 요구사항 레벨은 진행 단계의 느낌이 강해서 한 프로젝트 내에 여러 게임을 만드는 것이 아닌 하나의 게임을 구현할 것이다. 결과적으로 프로젝트에 하나의 게임(application)을 구현하게 된 만큼 좀 더 객체지향스럽게 구현해 보고자 하였고, 아래의 내용을 작성하게 되었다. 1. 요구사항 분석 및 정리 프로젝트 요구사항은 여기에 정리해 두었다. ..
2024.09.12 -
[내일배움캠프] TIL - 24.09.11(수)
어제부로 진행하던 '계산기 구현' 과제를 마무리하고 제출하였기에 오늘은 그 동안 과제 진행으로 'To Do List' 에 적어둔 것들을 학습하는 시간을 가졌다. 그간 코딩 문제(알고리즘 및 SQL)를 풀며 문제 해결에 도움이 되나 제대로 알고 있지 못핸 던 것들을 적어두었으며, 'To Do List' 에 적어둔 내용은 아래와 같다. 각 항목에 학습을 정리한 포스팅과 링크를 걸어 두었다.WITHUNIONIFNULLRECURSIVE개인적으로 학습간 'UNION' 에 대한 예시를 만들어 보면서 실무에서 크게 쓸 일이 있을까라는 의문이 들었는데, 해당 부분은 튜터님을 찾아가 실무 경험을 들어보며 어떠한 경우 해당 함수를 사용한 적이 있는지 들을 수 있었다. 단순 학습만으로는 예상하기 어려운 부분이었는데 직접 실..
2024.09.11 -
[SQL] 재귀를 활용한 반복문 - WITH RECURSIVE
Java 의 '반복문(for)' 과 비슷한 수행을 SQL 에서는 'Recursive CTE(Common Table Expressions)' 을 활용해 비슷하게 구현할 수 있다. 아무래도 한 번에 이해하기에는 어려워 Java 와 비교하며 이해하게 되었다. 1. 기본 문법WITH RECURSIVE 임시테이블명 AS ( SELECT 컬럼 첫 데이터 AS 컬럼별명 // 비재귀 SELECT 부분 UNION ALL SELECT 이전 컬럼값에 대한 연산 // 재귀 SELECT 부분 FROM 임시테이블명 WHERE 컬럼에 대한 조건식)SELECT 컬럼명FROM 임시테이블명 'WITH RECURSIVE' 는 'Recursive Common Table Expressions(재귀 공통 ..
2024.09.11 -
[SQL] NULL 변환 - IFNULL
간혹 선택지 외의 값을 가질 경우 컬럼 값을 null 로 지정하는 경우가 있다. 물론 null 값은 언제 터질 줄 모르는 시한폭탄 같기에 사용을 멀리해야 하지만 테이블 데이터를 가공하면서 null 값이 생기는 경우도 많다. 이럴 때 null 대신 다른 값을 지정하고 싶다면 'IFNULL' 함수를 사용하면 된다. 1. 기본 문법SELECT IFNULL(컬럼명, 지정값) AS 별명FROM 테이블명 사용 방법은 파라미터로 'null' 값을 변경할 타겟 컬럼의 이름과 해당 컬럼 값이 'null' 일 경우 변경(지정)할 값을 작성하면 된다. 이렇게 되면 컬럼 값이 'null' 인 경우 '지정값' 이 반환되고 'null' 이 아니라면 해당 컬럼 값이 반환된다. 2. 사용 예시 'test' 테이블의 'test_n..
2024.09.11 -
[SQL] 레코드 집합 합치기 - UNION
이전 학습한 'JOIN' 이 특정 컬럼을 기준으로 두 테이블의 레코드를 합치는 기능을 한다면, 'UNION' 은 같은 컬럼구성을 갖는 두 집합의 레코드를 합쳐 하나의 집합으로 만드는 기능을 한다. 1. 기본 문법SELECT column1, column2FROM table1UNION (or UNION ALL)SELECT column1, column2FROM table2 명확한 'UNION' 의 기능은 '두 개이상의 SELECT 문의 결과 집합을 결합' 하는 것이라 한다. 당연하게도 결합할 집합은 같은 개수의 컬럼을 가져야하고 컬럼구성(컬럼명, 컬럼타입)이 같아야 한다. 위의 문법을 통해 좀 더 설명하면 아래의 조건을 만족해야 하는 것이다.'table1.column1' 과 'table2.column1' 의..
2024.09.11