[TIL 10th] 코드카타 까먹은 코드들 / 파이어베이스 쿼리사용법 / 협업시 유의점
by 노실언니
1. SQL 코드카타 | date 형의 출력형식 변경
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59414
문제 요구: datetype형을 시각(시-분-초)을 제외한 날짜(년-월-일) 만 보여지도록
1) 시도 : datetype형을 date형으로 형변환 : select date(DATETIME)
시도결과 : 2014-06-21 12:25:00 -> 2014-06-21 00:00:00 으로 이상하게 나옴
2) 재시도 : date_format(datetime, '%Y-%m-%d')
시도결과: 해결
참고자료 :
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
2. between 형식까먹음 / 그런데, between 보다 성능상 부등호로 구현하는 것이 더 낫다고 함
3. SQL 코드카타 | 특정 필드값의 앞 2자리만 출력
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131529
문제요구: 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문
1) 시도 : 앞 2자리 자른 서브쿼리
2) 함수까먹음 https://blog.naver.com/jjys9047/221657325525
3) 해결 : left(PRODUCT_CODE,2)
4. SQL 코드카타 | 문자를 숫자로 변경해서 정렬을 원하는 오름차순으로 만들기
해결방법 : CAST('123' AS UNSIGNED);
5. SQL 코드카타 | datetype형을 시(24시간제) 1, 2, 3... 으로 가공하기
해결방법 : cast(date_format(DATETIME,"%H") as unsigned)
6. 파이어 베이스 | 날짜추출법 (댓글에 사용하려고)
해결코드:
async function getCommentByUID(uid) {
// 쿼리설정 : 방명록 중 특정 UID에 해당하는 코멘트만 날짜 내림차순으로
const q = query(
collection(db, "comment"),
where("memberUid", "==", uid), // 팀 전체의 경우 team2code 로 읽으면 됨
orderBy("date")
);
// 쿼리사용해서 DB인출
console.log("시작");
const comments = await getDocs(q);
let tempComment_html; // 코멘트 당 붙일 html
if (comments.empty) {
tempComment_html = `<li class="comment">
<div class="non-comment" style="margin: 0px auto">코멘트가 없습니다</div></li>`;
$("#comment-list").append(tempComment_html);
} else {
comments.forEach((comment) => {
// 코멘트 하나씩 row에 할당하고
let row = comment.data();
let commentId = comment.id;
// row의 정보들을 각각 컬럼별로 쪼개서 변수에 할당
let content = row["comment"];
let lastDate = row["date"].toDate();
let year = lastDate.getFullYear();
let month = ("0" + (lastDate.getMonth() + 1)).slice(-2);
let days = ("0" + lastDate.getDate()).slice(-2);
lastDate = year + "-" + month + "-" + days;
let commenterId = row["id"];
tempComment_html = `<li class="comment">
<div class="comment-id">${commenterId}</div>
<div class="comment-word">${content}</div>
<div class="comment-btn-box">
<a class="comment-fix-btn" id="comment-fix-btn" data-id="${commentId}">수정</a>
<a class="comment-del-btn" id="comment-del-btn" data-id=${commentId}>삭제</a>
</div>
<div class="comment-date">${lastDate}</div>
</li>`;
$("#comment-list").append(tempComment_html);
});
}
}
getCommentByUID(uid);
7. pull이 abort 되는 상황 | 미추어버리는줄
git pull 한 후의 오류메세지:
error: Your local changes to the following files would be overwritten by merge:
index.html
Please commit your changes or stash them before you merge.
Aborting
오류의 원인:
해당 파일(index.html) 을 내 컴퓨터(로컬)에서 수정/저장했고 commit은 안 한 상태인데
그 사이에 해당 파일이 원격 저장소에서 (다른 작업에 의해) 바뀌어 있는 경우 발생
해결 방법:
1) stash (내 작업 미뤄두기) 명령어를 통해 먼저 변경 사실을 받아옴
2) 내 작업을 commit 하고 pull 받아서 혼합된 변경내역을 수정하면 됨
8. VS익스텐션 prettier의 저장시 자동 정렬기능을 나만 쓰면, 공동작업파일을 다른 팀원이 pull할 때 충돌多
같이 쓰던지 / 다 안 쓰던지 / 사용하되 다른 팀원분의 파일을 아예 건들지 말기
'Today I Learned' 카테고리의 다른 글
[TIL 12th] SQL코드카타, Case when이 최선이 아닌 문제 (0) | 2024.12.31 |
---|---|
[TIL 11th] 나의 첫 팀 프로젝트를 마무리하며, 코드 메모 및 보완점 (0) | 2024.12.31 |
[TIL 7th] Spring 5기 온보딩 | 배운게 없는데 많달까 (1) | 2024.12.23 |
[TIL 6th] SQL 완강-빠르게 핥은 SQL / 애증의 group by (1) | 2024.12.12 |
[TIL 5th] 웹개발종합반 완강/오타와 배포는 괴로워 (2) | 2024.11.29 |
블로그의 정보
노력하는 실버티어
노실언니