부트캠프를 수료한지도,

2023년이 시작된지도 벌써 반 년이 지났습니다.

 

그간 있었던 일을 되돌아보고,

앞으로의 계획을 세우려 합니다.

 

- 기간 별 있었던 일 - 

 

1~3월 :

개인 프로젝트를 진행하며,

백엔드 지식만으로는 상품생산에 어려움이 있다는 것을 느꼈습니다.

 

이에 백엔드 관련 내용 뿐 아니라, 네트워크와 프론트엔드 관련 내용을 공부하였습니다.

 

react와 vue를 사용하여,todolist 및 draganddop 관련 페이지를 제작해보았습니다.

 

앞선 두 페이지를 제작하며 공부한 내용을 바탕으로,평소 관심있던 chatting 관련 페이지를 제작해보았습니다.

 

4월 : 

일주일 간 여행을 다녀왔습니다.

chatting 페이지의 전체적인 refactoring을 진행했습니다.

 

5월 : 

3주 간 여행을 다녀왔습니다.

공부에 크게 집중하지 못했던 시기였습니다.

 

6월 : 

집 이사를 하였습니다.

클라우드 관련 공부를 시작하였습니다.

chatting 페이지의 db이전, 백엔드서버 이전, https적용을 진행했습니다.

 

 

- 좋았던 점 -

 

'상품'이 어떻게 개발되는지에 대해 어렴풋하게나마 알게 되었습니다.

 

'어떤 개발자가 되고싶은가?'를 스스로에게 물었을 때,

저는 항상 '상품 하나를 책임질 수 있는 개발자'가 되고싶었습니다.

 

떄문에 완성도는 조금 떨어지더라도,

전체적인 흐름을 알기위해 노력했습니다.

 

백엔드 개발자가 되길 희망합니다만,

시야를 백엔드에만 머무르지 않을 수 있도록 넓힌 것 같아 뿌듯합니다.

 

 

- 부족했던 점 -

 

두 가지가 부족했습니다.

 

1. 기록의 부족함

 

공부한 내용에 대해 자신이 없다보니,

공부한 것을 기록하는 것이 부족했던 것 같습니다.

 

딴에는 '좀 더 공부하고 완성도 높은 글을 써야지'했지만,

결국은 어중이떠중이가 되어버린 기분입니다.

내심 그 핑계로 미뤄버린것 같기도하여 스스로 괘씸하기도 합니다.

 

앞으로는 어떤 형식으로든 공부했던 내용을 기록해야겠습니다.

 

2. 방향성의 부재

 

현재는 가까스로 방향성을 잡은 것 같습니다만,

한동안 무엇을 공부해야 할 지 헤맸던 시기가 있었습니다.

기록이 부실하고 현재 본인의 위치에 대한 확신이 없다보니 생긴 일 같습니다.

 

좀 더 냉정하게 본인에 대해 바라보고 판단해야 겠습니다.

 

 

- 앞으로의 계획 - 

 

앞으로는 공부와 취업준비를 병행하려 합니다.

 

클라우드와 리눅스 관련 내용을 공부하여 상품 운용에 대한 내용을 익히려 합니다.

또 Typescript를 이용한 미니프로젝트를 진행하여 코드작성에 관한 내용도 개선하려 합니다.

 

이런저런 핑계로 소홀했던 취업준비도 조금씩 해보려합니다.

 

잘한점도 분명히 있었지만 냉정히 생각하보면,

완성도를 높인다는 핑계 -> 미룸 -> 결과가 없음 -> 완성도가 높아질 수 없음 -> 완성도를 높인다는 핑계

의 악순환도 분명히 있었던 시간이었습니다.

 

상기 악순환의 고리를 끊는 방법에도 여러가지가 있겠습니다만,

우선은 '결과가 없음'을 개선해보려합니다.

 

ㅜ________ㅜ화이팅!!!!!

validateCodeInputCheck

validateCodeInputBoxToggle

emailInputBoxToggle

checkSubmitValidateCode

validateCodeMatchCheck

checkIfEmailConfirmed

 

위 단어들은 제 소스코드에 적용되어 있는 변수들의 이름입니다.

 

명확한 변수명이 좋다는 이야기를 어디선가 들었습니다.

그래서 동사, 목적어, 형용사 등등을 섞어 만들어보았습니다만,

하면 할수록 뭔가 개선이 필요해보입니다.

 

'추상화'라는 것을 해야할 것 같습니다만..

어떻게 추상화 하면 좋을지 아직 감이 잘 안잡힙니다.

 

책을 읽어볼까,

깃허브를 뒤져볼까,

아니면 둘 다 해볼까..

 

이런저런 고민을 합니다만,

시간은 제 마음도 모르고 휙휙 지나가버리는 것 같습니다.

'생각, 영감' 카테고리의 다른 글

비버가 됩시다  (2) 2022.12.22
지금 당신은 어디에 있나요?  (2) 2022.12.12
성장의 3요소  (0) 2022.11.28

socket io를 이용한 채팅 페이지를 만들어 보았습니다.

앞으로는 이 페이지를 중점적으로 디버깅, 리팩토링 하며 공부하려 합니다.

 

아직 버그 투성이입니다만,

공개하고 피드백을 받는편이 스스로에게도 도움이 되지않나 싶어 공개합니다.

 

자세한 사항은 하기와 같습니다.

 

프로젝트명 : chat with dug

페이지 주소 : http://3.34.53.25:3000 -> https://chatwithdug.netlify.app/

 

---------------------------------------------2023. 4. 23.---------------------------------------------

 

버전 : 1.0.4

변경점2 : signup component의 논리, 파일구조 및 전체적인 수정

 

 

---------------------------------------------2023. 4. 21.---------------------------------------------

 

버전 : 1.0.3

변경점1 : 전체적인 fetch URI 변경

변경점2 : signin, signup시의 논리 수정

 

 

---------------------------------------------2023. 4. 20.---------------------------------------------

 

버전 : 1.0.2

변경점1 : 사용자가 채팅방을 떠날 때의 논리 수정

변경점2 : 사용자가 채팅내용을 제출할 때의 논리 수정 

변경점3 : 오기 수정

변경점4 : 사용자가 signout할 때의 논리 수정

변경점6 : 사용자가 signin, signup할 때 username이 모두 소문자가 되도록 논리 수정

변경점7 : 파비콘 수정

 

 

---------------------------------------------2023. 4. 19.---------------------------------------------

 

버전 : 1.0.1

변경점1 : MySQL -> MariaDB로 DB변경

변경점2 : 프론트엔드는 Netlify, 백엔드는 CloudType 배포로 변경

(지금까지는 프론트엔드, 백엔드 공통 AWS배포)

변경점3 : 회원가입 기능 완성

변경점4 : 비밀번호 찾기 기능 완성

변경점5 : 전체적인 리팩토링

 

 

---------------------------------------------2023. 3. 30.---------------------------------------------

 

버전 : 1.0.0

참고사항1 : 회원가입은 막아 둔 상태

참고사항2 : 같은 아이디로 동시접속가능 -> 회원가입 완성 후 리팩토링 할 예정(사용자 구분은 현재도 가능)

참고사항3 : 아이디 test_01, test_02, test_03, test_04, test_05로 테스트 가능, 비밀번호는 qwer1234!로 모두 동일

기타 : 약 일주일 간 여행 다녀 온 후 리팩토링 할 예정👀🥩🔥

'웹개발자공부 > Project' 카테고리의 다른 글

draganddrop  (0) 2023.03.06
todolist  (0) 2023.01.16
처음으로 완성시킨 페이지 작성자료 업로드  (0) 2022.10.21

draganddrop을 통해 DOM을 조작하는 페이지를 제작하였습니다.

관련 정보는 하기와 같습니다.

 

1. 프로젝트명 : draganddrop

2. 프로젝트목표 : 프론트엔드 서버와 백엔드 서버를 연동한 draganddrop활용 페이지 작성

3. 프로젝트기간 : 2023.02.20 - 2023. 03. 03(12일)

4. 인원 : 1인

5. 깃허브 주소 :

프론트엔드 https://github.com/duglikespiano/draganddrop_frontend
백엔드 https://github.com/duglikespiano/draganddrop_backend

 

'웹개발자공부 > Project' 카테고리의 다른 글

chat with dug  (0) 2023.03.30
todolist  (0) 2023.01.16
처음으로 완성시킨 페이지 작성자료 업로드  (0) 2022.10.21

MySQL 쿼리문 작성 시,

WHERE절 Subquery활용을 통한 카테고리 별 최대값 찾기 예시 쿼리문을 기록합니다.

 

해당 쿼리문은 하기와 같습니다.

SELECT CATEGORY, NUMBER FROM TABLE
WHERE NUMBER IN (
	SELECT MAX(NUMBER) FROM TABLE
	GROUP BY CATEGORY
	)
GROUP BY CATEGORY

'웹개발자공부 > MySQL' 카테고리의 다른 글

MySQL - COUNT(*), COUNT(COLUMN)의 차이  (0) 2023.02.15
MySQL - WITH와 Subquery의 정의  (0) 2023.02.15
MySQL - IF함수의 정의  (0) 2023.02.15
MySQL - DATE_FORMAT함수의 정의  (0) 2023.02.15
MySQL - DATEDIFF함수의 정의  (0) 2023.02.15

MySQL의 집계함수 COUNT를 사용할 시,

*로 모두 사용할 때와 일반 COLUMN을 지정 할 때에는 하기와 같은 차이가 있습니다.

 

• COUNT(*)

NULL값이 포함되어 있는 DATA까지 집계합니다.

 

• COUNT(COLUMN)

NULL값이 포함되어 있는 DATA는 집계하지 않습니다.

 

실제 테스트 결과를 첨부합니다.

description COLUMN이 모두 NULL임

 

MySQL의 WITH와 Subquery의 정의는 각각 하기와 같습니다.

MySQL 공식 문서를 참고하였습니다.

 

https://dev.mysql.com/doc/refman/8.0/en/with.html

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.20 WITH (Common Table Expressions)

13.2.20 WITH (Common Table Expressions) A common table expression (CTE) is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement, possibly multiple times. The following disc

dev.mysql.com

https://dev.mysql.com/doc/refman/8.0/en/subqueries.html

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.15 Subqueries

A subquery is a SELECT statement within another statement. All subquery forms and operations that the SQL standard requires are supported, as well as a few features that are MySQL-specific. Here is an example of a subquery: SELECT * FROM t1 WHERE column1 =

dev.mysql.com

 

• WITH (Common Table Expressions)

A common table expression (CTE) is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement, possibly multiple times.

쿼리문 내에서 존재하는 임시 Table이란 점이 특징입니다.

 

Subqueries

A subquery is a SELECT statement within another statement.

다른 쿼리문 내에 존재하는 SELECT쿼리문입니다.

 

대체로 WHERE문에서 많이 사용되는,

단일 값을 나타내는 Subquery를 Scalar Subquery라고도 부릅니다.

 

 

MySQL의 조건문 관련 문법 중 IF함수의 정의는 하기와 같습니다.

MySQL 공식 문서를 참고하였습니다.

https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if

 

MySQL :: MySQL 8.0 Reference Manual :: 12.5 Flow Control Functions

12.5 Flow Control Functions Table 12.7 Flow Control Operators Name Description CASE Case operator IF() If/else construct IFNULL() Null if/else construct NULLIF() Return NULL if expr1 = expr2 CASE value WHEN compare_value THEN result [WHEN compare_value

dev.mysql.com

 

• IF(expr1,expr2,expr3)

expr1이 TRUE라면 expr2를 반환하고, 그렇지 않다면 expr3을 반환합니다.

MySQL의 날짜관련 문법 중 DATE_FORMAT함수의 정의는 하기와 같습니다.

MySQL 공식 문서를 참고하였습니다.

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format

 

MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions

12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com

 

• DATE_FORMAT(date,format)

인자로 삽입 된 date의 형식을 지정한 format으로 변경하여 출력합니다.

YYYY-MM-DD형식으로 나타내기 위해서는 '%Y-%m-%d'로 기입합니다.

MySQL의 날짜관련 문법 중 DATEDIFF함수의 정의는 하기와 같습니다.

MySQL 공식 문서를 참고하였습니다.

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_datediff

 

MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions

12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com

 

• DATEDIFF(expr1,expr2)

expr1과 expr2의 차이를 date로 나타냅니다.

DATEDIFF이외에도 TIMEDIFF, TIMESTAMPDIFF, PERIOD_DIFF 등이 있습니다.

+ Recent posts