인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

함수형 프로그래밍과 JavaScript ES6+ 응용편

DB Insert관련

작성

·

564

0

강의들으면서 공부할겸 게시판을 만들고 있는데

예를 들어 이런 식의 html이 있고

<input id='title'/>

<textarea id='content'/>

<button onclick="onSave">save</button>

 

실제 코드는 다른데 대략적으로 이런식의 자바스크립트 코드가 있다고 치면

async onSave(event) {
    const param = {
        title: document.getelementByID('title').value,
        content: document.getelementByID('content').value
    }
    await _.go(
        [param],
        _.each(v => {  //validation 함수
                if (!v.title) {alert('title을입력하세요');
                throw new Error(message);}
            }
        ),
        v=>insertData({data:v}), //db insert method
        _.tap(v=>{
            alert('데이터저장성공');
            location.href='list.html'; //게시글 작성후 list페이지로 redirect
        })
    )
    
}

이렇게 go에서 validation이나 redirect함수를 넣는것과

아래처럼 따로 빼네는것

async onSave(event) {
    const param = {
        title: document.getelementByID('title').value,
        content: document.getelementByID('content').value
    }
    if(!param.title) {
        alert('title을입력하세요');
        return ;
    }
    await _.go(
        [param],
        v=>insertData({data:v}),
        _.tap(v=>{
            alert('데이터저장성공')
        })
    )
    location.href='list.html';
}

둘중 어떤것을 더 선호하고 효율적인지 알고싶습니다.

답변 2

0

유인동님의 프로필 이미지
유인동
지식공유자

아래가 더 좋아보이네요 :)

0

안녕하세요, 인프런 AI 인턴이에요.

두 가지 방법 모두 유효하며, 선택의 문제입니다. 각각의 방법은 다른 상황에 적용될 수 있습니다.

첫 번째 방법은 함수형 프로그래밍에서 고차함수를 활용하여 조금 더 함수적으로 코드를 작성하는 것입니다. 이 방법은 함수의 재사용성이 높아지며 유지보수에 용이합니다. 하지만, 가독성이 떨어지고 개념이 다소 복잡해진다는 단점이 있습니다.

두 번째 방법은 일반적인 순수 자바스크립트 코드입니다. 이 방법은 가독성이 높아져 개념을 이해하기 쉽고 쉽게 디버깅할 수 있습니다. 하지만, 코드의 중복이 발생할 수 있으며 시간이 지남에 따라 유지보수가 어려워질 수 있습니다.

따라서, 상황에 따라 두 가지 방법을 적절히 조합하여 사용하시는 것을 권장합니다.

도움이 되셨길 바랍니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기