1.이력서의 핵심 부분은 3~5줄 정도의 경력 중심 자기소개로
어떤 경험을 했는지, 어떤 성과를 냈는지, 정량적인 지표를 사용해 구체적으로 작성하며 학습 경험 등을 경력에 넣어도 된다.


2.클린코드는 이름에서 알 수 있듯이 깔끔하게 구성된 코드로
이 코드가 어떤 작업을 하는지 막힘없이 알 수 있게 구성하는 것이다.
클린 코드를 위해서는 수많은 조건이 있지만
기본적으로 아래와 같은 공통적인 전제 조건들이 있다.

-이름을 보고 기능을 추측할 수 있어야 한다
-오류가 없어야 한다
-중복이 없어야 한다
-의존성을 줄여야 한다
-한 가지 기능당 하나의 일을 수행해야 한다
-구분을 위한 일정한 간격을 유지해야 한다



3.리팩토링(refactoring)은 결과의 변경 없이 코드의 구조를 재조정한다는 의미를 가지고 있다.
실제로 커밋 메세지 기준을 확인하면
성능 개선은 refactor(리팩토링 커밋메세지)를 사용하는 것이 아니라
perf: "xxx" 형식으로 하는 것이 일반적임을 알 수 있다.
perf는 performance(성능)의 약자로 성능 개선 커밋에 주로 사용된다.

여기서 알 수 있는 것은
refactoring은 기능개선 및 최적화를 위한 것이 아니라
클린코드를 만들기 위한 가독성 개선이라고 볼 수 있다.

이를 통해 유지보수 및 협업 등에서 이점을 얻을 수 있는데
리팩토링이 필요한 코드는 위에서 언급된 중복, 네이밍, 다기능 등이 있다.

하나의 함수에 여러가지 기능들이 들어갈 경우
작성할 때는 큰 차이가 없다고 생각할 수 있지만
다른 사람이 전체적인 내용을 파악하기 어려울 수 있고
부분적 수정이 필요할 경우 전체를 변경해야 하는 일이 생길 수 있기 때문에
최소 단위의 순수함수들을 구분해 
이런 함수들은 굳이 수정이 필요하지 않음을 식별할 수 있다.





(1).백준 5691 평균 중앙값 문제는 평균, 중앙값이 같아야 하는 문제였다.
처음에는 a,b가 주어지기 때문에 c가 평균, 중앙값이 되어야 한다고 생각했다가
평균, 중앙값이 일치하기만 하면 되는 것을 보고 
평균은 a+b+c/3 = x
중앙값 또한 x가 되어야 하기 때문에 a/b/c중에 하나로
a+b+c = 3a|3b|3c로 a+b = 2c / a+c = 2b / b+c = 2a라고 생각했다.
하지만 값이 하나가 아니라 조건을 추가로 보니
가장 작은 정수 C를 찾아야 했기 때문에
조건은 C A B 순서일 수 밖에 없고
중앙값은 A로 고정되기 때문에 b+c = 2a가 되어버렸다
결론적으로 2a-b = c로 
각 테스트케이스마다 2a-b를 result에 push하는 것으로 해결했다.

let input = `1 2
6 10
1 1000000000
0 0`.split('\n')

let result = []
for(let i = 0 ; i < input.length -1 ; i++){
    let [a,b] = input[i].split(' ').map(Number)
    result.push(2*a-b)
}

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

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

[취업준비일지] - 71  (0) 2022.12.30
[취업준비일지] - 70  (0) 2022.12.29
[취업준비일지] - 68  (0) 2022.12.27
[취업준비일지] - 67  (0) 2022.12.26
[취업준비일지] - 66  (0) 2022.12.25

+ Recent posts