220927 부끄러운 타자연습

샨티(shanti)·2022년 9월 27일
0

TIL

목록 보기
115/145

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.

화요일이다.
평일 기준 약 3일정도 남았지만 우리 모두 너무나 잘 알고있지 않은가.
이렇게 후루룩- 시간이 지나가고 또 어느새 TIL과 주간회고를 동시에 쓸 날이 오고야 만다는 것을.

어제부터 나는 부끄럽게도 타자연습 중이다.
사실 어제만 해도 일과시간에 동료들에게
'강의를 따라서 쳐보는게 맞을까요...? 잘 모르겠어요...' 라고 했었는데 오늘의 내가 어제의 나에게 외치고 있다.

그시간에 따라 치라고. 한줄이라도 더 치라고...ㅋㅋㅋ

강의를 보고 이해하면서 이번주 과제를 진행해볼까? 생각했는데 아주 큰 오산이었다.
어제 밤부터 '아, 이렇게 하다간 정말 큰일 또 큰일 나겠다. 몇가지 기능이 구현되지 않더라도 우선 강의를 따라쳐서 강의에 나온 기능만이라도 만들어볼 수 있어야 하지 않겠는가' 라는 생각이 강하게 들었다.

그래서 정말 솔직하게 털어놓는다.

나는 아주 부끄럽게도 타자연습 중이다.
강의를 조금 빠르게 들으면서 이해가 되는 부분은 끄덕이곤 하지만 그럼에도 불구하고 너무나 생소한 내용을 들으며 타자를 치고있다.

코딩을 하는게 아니라 말 그대로 타자 연습.

마치 1천피스의 색색깔 블록을 한데 쏟아놓고 설명서를 읽어가며 조립하는 느낌이다. 고민과 생각은 잠시 미뤄두었다.

맞는건지 고민할 새도 없이 하루가 지나가버렸다. 원래 TIL엔 오늘 코딩도장을 풀면서 적용해본 SQL 문법에 대해 정리를 해보고 싶었지만 그 마저도 양질의 것은 될 수 없어보이고. 개념노트 커버는 그저 목요일 정도로 미뤄둬야 할 것 같다. 그나마 주말에 어느정도 커버를 해둔 내가 대견할 뿐.

강의를 다시 보아도, 아마 강의의 모든 코드를 따라친 후 주루룩 훑어보아도 과연 이해할 수 있을까?
하지만 이 고민마저 뒤로 미뤄둔다. 작은 것 하나라도 '되는' 상태를 만들어보고자.

매일 매일이 부족한 나를 발견하는 시간이지만 그럼에도 불구하고 go 한다.

오늘 역시 나는 어떤 가치를 창출했는가? 질문해보니 딱히 떠오르지 않는다.
그저 생각 없이 '마카오뱅크' 만드는 설명서를 따라가는 것이 가치를 창출하지 않는다는 것을 알기 때문이다.

마음의 짐을 살-짝 덜어보고자. 오늘 2가지 방법으로 풀어본 프로그래머스 SQL 문제와 풀이법을 아래와 같이 공유한다.




프로그래머스 SQL문 최댓값 구하기

오늘은 '최대값 구하기' 문제였다.
테이블은 어제 제시된 내용과 같았고, 말 그대로 '최대값'을 구하는 문제였는데 모든 column의 요소를 구하는 것은 아니었고 특정 '시간' column만을 출력하도록 한다.

첫번째 풀이

제출답안 1
SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1

주석
1) 구하고자 하는 것은 (1) 가장 최근에 들어온 동물이 (2) 언제 들어왔는지이다.
2) 따라서 테이블 전체를 선택하지 않아도 되며 DATETIME 컬럼만 선택했다.(SELECT DATETIME)
3) 해당 컬럼은 ANIMAL_INS 테이블에 속해있다.
4) 가장 최근에 들어온 시각을 구해야 하므로 DATETIME을 내림차순으로 정렬한다.(ORDER BY DATETIME DESC)
    다만 ORDER BY의 정렬 기본값은 오름차순(ASC)이므로 반드시 DESC 조건이 붙어야한다
5) 정렬한 데이터에서 '가장 최근' 데이터만 필요하므로 출력될 데이터의 갯수를 1개로 제한한다(LIMIT)

어제 코딩도장 문제를 일찍 풀고 시간이 좀 남아서 짤막한 영상을 한 편 봤었는데 그 영상에서 나왔던 문법을 활용해 풀어보았다.

사실 쉽게 푼 방법은 아니다. 최대값을 구하는 함수가 있다는 걸 몰랐기에 전날 들었던 내용을 어찌되었건 기억해서 풀었다.


두번째 풀이

제출답안 2
SELECT MAX(DATETIME) FROM ANIMAL_INS

주석
1) 코딩테스트 연습에 힌트로 SUM, MAX, MIN이라는 부분이 붙어있으므로 이를 구글링해서 찾아보고 풀어본다.
2) MAX 함수는 숫자 뿐만 아니라 문자형 데이터에서도 사용 가능하다고 한다.
3) 구하고자 하는 것이 DATETIME 컬럼의 가장 최근값(즉 최대값)이므로 해당 컬럼이름을 MAX 함수에 인자로 준다.
4) 단 구하고자 하는 베이스 DB(ANIMAL_INS)는 FROM 으로 같이 따라와야 함(SQL의 규칙같은 것인듯.)

아마 이 풀이가 정석에 가깝기도 할 것이도 거의 대부분의 사람들이 이렇게 풀지 않았을까.
한번에 구할 수 있는 아주 유용한 함수. ㅎㅎ

구글링을 하다보니 '집계함수'라고 그룹핑을 하는 것 같던데 좀 더 찾아봐야지.

그럼 다시 또... 불편한 마음을 한가득 안고. 치러.. 간다...

빠르게 치고나서 추가하는 기능에 대해서는 좀 더 고민과 생각을 가지고, 무지성으로 진행하지 않았으면 한다. 고민한다고 해서 해결될까 싶기도 하지만 이번 복습주간(이라고 하지만 너무나 새로운걸?!) 동안 좀 더 단단해졌으면...

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글