3시 전까지 기능구현에 대한 조건들을 보며 issue를 생각하다가
3시부터 인턴십 팀원 몇분과 이번 사전과제에 대한 회의를 시작했다.
리액트 쿼리를 사용한 리뷰를 다들 생각했었지만
생각보다 리액트 쿼리가 복잡해서 리액트 쿼리를 적용하신분이 없으셨다.

게다가 이번 사전과제는 저번 과제와는 다르게 조건들도 더 많고
다들 이전 사전과제에서 배웠던 브랜치전략, 이슈, 커밋, 폴더, prettier, ESLint 등 모듈설정 등 신경쓸 점도 많고 각자 진행을 제대로 하지 못한 것 같았다.

목요일까지 제출할 수 있으면 하는 것인데
내일부터는 다시 인턴십 과제가 나오는 날이기 때문에
제출할 수 있는 분이 몇분 계실지는 확신할 수 없다.

이번에는 학습보다는 취업에 대한 이야기가 조금 더 중점적이었는데
5년차 개발자 공고 자격요건보다 
신입 자격요건이 더 빡빡하게 차있는 점도 다시 한번 볼 수 있었고 
포트폴리오를 기본적으로 요청하는 회사들이 많았기 때문에
어떤 기술스택으로 어떤 포트폴리오를 만들어야 하는지에 대한 이야기가 중심이었다.

다만 각자 생각은 조금씩 달랐는데
서버까지 배워서 하나를 만들어보자는 분도 계시고
api를 이용해 서버 없이 정보제공을 목적으로 생성하자는 의견도 있고
같이 만들어보자는 의견을 주시는 분도 있었다.

하지만 인턴십에서 매주 진행하는 과제를 하고 나면 남는 시간이 얼마 없어서
제대로 같이 진행할 수 있는지에 대해서는 미지수였다.

내일 오후 2시부터 진행되는 세션과 과제가 있기 때문에
내일 다시 만나기로 하고 회의는 종료되었다.


1.함수형 프로그래밍은 객체지향 프로그래밍과 대조되는 선언형 방식으로
애플리케이션의 상태는 순수 함수를 통해 전달된다.

함수형 프로그래밍에서는 아래와 같은 특징들을 알아야 한다.

순수 함수 (Pure functions) - 받은 매개변수를 가공해 리턴해야 하며
 상태, 조건과 관계없이 입력된 값이 같은 경우 항상 같은 결과가 나와야 한다.
 또한 리턴 외에 다른 상태들에 영향을 줘서는 안된다.

합성 함수 (Function composition) - 함수를 합치는 방식으로
 기존 함수를 재활용 할 수 있다는 특징이 있다.

공유상태 피하기 (Avoid shared state) - 순수 함수를 써야 하는 이유로
 외부의 상태값을 사용하지 않고 내부에 정의된 값으로만 영향을 줘야
 항상 같은 입력값에 같은 결과를 받을 수 있다.

상태변화 피하기 (Avoid mutating state) - 상태값을 변화할 경우
 이 행동을 통한 결과가 변경될 수 있기 때문에 
 아래에서 설명하는 side effect가 발생할 수 있다.

부작용 피하기 (Avoid side effects) - 다 동일한 내용이지만
 상태 변경, 작성, 외부 값 변경, 트리거 작동, 순수하지 않은 함수 호출 등을 할 경우
 결국 의도하지 않은 side effect가 발생할 수 있기 때문에 
 순수함수들만 조합하거나 하나의 기능만 하는 순수함수만을 사용해야 한다.


 





(1).백준 5235 Even Sum More Than Odd Sum는 홀수와 짝수의 합을 비교하는 문제로
특이하게도 테스트케이스 내부 첫번쨰 숫자는 테스트케이스 내부 숫자들의 갯수로 
합에서 제외시켜야했다.

홀, 짝 여부를 %2를 통해 판별해준 다음
홀, 짝을 대변하는 ODD, EVEN에 더해주고
최종적으로 값을 비교해 큰 쪽을 result에 push하거나
둘 다 아닐경우 동점이라는 의미기 때문에 TIE를 push해줬다.

let input = `4
8 5 7 2 1 10 13 6 12
4 5 2 3 4
8 1 2 1 2 1 1 1 1
6 1 1 2 3 5 8`.split('\n')

let result = []

for(let i = 1 ; i < input.length ; i++){
    let arr = input[i].split(' ').map(Number)
    let ODD = 0
    let EVEN = 0
    for(let j = 1 ; j < arr.length ; j++){
        if(arr[j] % 2){
            ODD += arr[j]
        }
        else{
            EVEN += arr[j]
        }
    }
    if(ODD > EVEN){
        result.push("ODD")
    }
    else if(EVEN > ODD){
        result.push("EVEN")
    }
    else{
        result.push("TIE")
    }
}
console.log(result.join('\n'))

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

[취업준비일지] - 76 - 원티드 인턴십 5일차  (0) 2023.01.04
[취업준비일지] - 75  (0) 2023.01.03
[취업준비일지] - 73  (0) 2023.01.01
[취업준비일지] - 72  (0) 2022.12.31
[취업준비일지] - 71  (0) 2022.12.30

+ Recent posts