1.커밋을 할 때는 문제 하나씩 다뤄야 관리가 편하며
커밋명은 How 대신 What과 Why를 담아야 한다.

깃 메세지를 작성할 때 고려해야 하는 가장 중요한 것은
이 메세지를 작성함으로서 코드 이력 추적에 도움이 되는지인데

fix, add, remove, use, refactor, simplify, update, improve를 사용하라고 하지만
사실 명확한 내용 또는 컨벤션을 이용한다면 굳이 저 내용을 사용하지는 않아도 될 것 같다.

커밋에서 제일 중요한 점은 규칙을 지키는 것인데
하다가 시간부족 또는 명명의 어려움 등 여러 난관이 생길 수 있지만
대충 작성해서 피해를 보는 것은 팀원 또는 미래의 나이기 때문에 
힘들더라도 규칙을 따라서 커밋하는 습관을 가지자


2.오류메세지를 작성할 때 단순히 console로 된다/안된다를 출력하는 경우가 많았는데
실제로 오류메세지를 작성할 때는 주의해야 할 점이 많다.

"로그인 실패"라는 메세지도 로그인이 실패했다는 사실은 알지만 "왜" 실패했는지는 알 수 없다.
이를 위해서 잘못된 정보인지, 네트워크 문제인지, 서버가 닫혀있는지 등 추가적인 정보를 줘야 한다.

또한 SQL injection 등의 공격이나 디렉토리 접근 공격 등의 빌미가 될 수 있는 
내부 구문이나 위치 정보를 제공하지 않아야 하며
메세지에 개인정보 등이 담기지 않아야 한다.

개발자를 배려하기 위한 메세지와 사용자를 배려하기 위한 메세지는 다른데
공통적으로 사용할 수 있는 방법은 문제마다 각기 다른 에러코드를 매칭한 다음
에러가 발생할 경우 에러코드를 관리하는 페이지로 이동시켜 해결법을 볼 수 있게 하거나
해당하는 에러코드에 맞는 해결책을 팝업할 수 있는 버튼을 통해 
사용자에게 어떤 방법으로 해결할 수 있는지를 알려주는 것이 좋으며
개발자는 특정 에러코드를 이용해 원인을 빠르게 파악할 수 있다는 장점도 있다.


3.필요한 정보를 검색할 때도 주의사항들이 생각보다 많았다.
일단 현재 검색은 지역 최적화등과 알고리즘에 의한 관심 분야 정보가 등장하기 때문에
사실과는 다르거나 원하는 것과 다른 현재 아는 것과 유사한 정보만 나올 수 있다.

또한 문서나 책을 통해서 학습했다고 하더라도 
그 정보는 그 문서나 책이 작성된 시점에 맞는 정보일 뿐
역사적 사실이 아닌 기능에 관해서는 불변의 법칙이 아닐 가능성이 높기 때문에 
작성 시점에 대해서도 고려하고 있어야 하며
이런 문제를 확인하기 위해 단 하나의 결과만 맹신하지 말고
두 세개 이상의 다른 정보의 교차 확인이 필요하다.

검색하는 법에서 이미 학습한 적 있지만
검색 키워드 사용, 검색 조건 활용, 기간 활용, 영어 사용(작성자가 훨씬 많다) 등
어떤 방식을 통해 원하는 정보를 얻을 수 있는지에 대해서도 생각할 필요가 있다.

한국어로 된 내용은 검색에서 제외하기 위해 환경 설정을 하는 등
목적에 따라 다양한 내용이 있기 때문에 "구글 검색 조건"같은 키워드를 통해
필요한 명령어들을 알아보는 것도 좋다.





(1).백준 9012 괄호는 어제 진행한 4949 균형잡힌 세상이라는 문제의 하위호환 느낌이 강했다.
어제는 소,중,대괄호를 처리하는 것이었다면 오늘은 소괄호 하나만 처리하는 것이었고
괄호가 제대로 된 경우 Vailid Parenthesis String(VPS)라고 한다는 것을  보고
vpsChecker라는 함수를 만들어 "YES", "NO"를 return하게 만든 후
입력으로 들어온 문자열들을 차레로 넣어 결과를 result에 저장한 다음
한번에 출력했다.
(각각 나올 때 마다 출력하게 되면 양이 많을 경우 시간제한에 걸릴 수 있기 때문에 모아서 "\n"으로 처리했다)

const input = `6
(())())
(((()())()
(()())((()))
((()()(()))(((())))()
()()()()(()()())()
(()((())()(`.split('\n')

const result = []

const vpsChecker = (str) => {
    let result = "YES"
    const stack = []
    
    for(let i = 0 ; i < str.length ; i++){
        if(str[i] === '('){
            stack.push('(')
        }
        else{
            if(stack.length){
                stack.pop()
            }
            else{
                return "NO"
            }
        }
    }

    if(stack.length){
        return "NO"
    }
    
    return result
}

for(let i = 1 ; i < input.length ; i++){
    result.push(vpsChecker(input[i]))
}

console.log(result.join('\n'))

'회고' 카테고리의 다른 글

[취업준비일지] - 117  (0) 2023.02.14
[취업준비일지] - 116  (0) 2023.02.13
[취업준비일지] - 114  (0) 2023.02.11
[취업준비일지] - 113  (0) 2023.02.10
[취업준비일지] - 112  (0) 2023.02.09

+ Recent posts