본문 바로가기
Front-End/JavaScript

선언적 코드와 절차적 코드, 추상화와 구체

by kk님 2023. 3. 14.

"선언적 코드"를 활용할 것

 

그렇다면 구체와 추상화는 또 비슷한 개념이 아닐까? 라고 생각되어서 정리해보려고 한다.

늘 함수를 만들면, 코드를 작성하면 '유지보수'하기 쉬운 코드를 위해 고민해야 하는데,

 내 코드는 늘 어쩐지 복잡하고 기본적이어서 무언가를 수정하려면 어려운 걸까 혹은 이렇게 결과를 똑같이 내더라도 과연 이렇게 작성하는게 맞는건가? 혹은 다른 분의 코드를 읽었을 때는 가독성이 좋아서 코드를 수정하기도 훨씬 쉬웠다. 그렇다면 내 코드와 차이점은 뭘까? 하는 고민을 하다가 강의를 통해 추상과 구체, 선언적 코드와 절차적 코드를 듣고 내 코드의 문제점을 다시 생각해보게 됐다.

 

일단 4개의 의미를 각각 분리해서 생각해보기로 했다.

 

어떻게(HOW)에 관한건 구체

무엇을(WHAT)에 관한건 추상

 

1을 한 다음, 2를 하고, 3을 하는 것을 모두 작성한 경우가 절차

A라는 메서드/함수를 사용 한 결과 는 선언

 

이렇게 보면 구체는 절차와 유사하고 추상은 선언과 유사해 보인다. 강의에서 이해한 내용을 바탕으로 내가 생각해본 내용이기 때문에, 다른 블로그를 참고했을 때 비슷하게 사용하는 경우가 있었다. 아마 비슷할지도 모르지만, 여기에서 유사한 부분을 조금 더 나눠본다면

 

구체와 추상은 좀 더 함수 선언과 관련되는 것처럼 이해했다.

무엇을 주면(params), 무엇을 얻지(return)?

function sum(x, y):number
function multi(x, y):number

여기서 연산자를 포함해 조금 더 추상화를 한다면 다음과 같은 표현이 가능할 것이다.

function calc(x, y, operator): number

추상화를 한다는 건 내부 코드에서 좀 더 변수화가 가능한 것을 찾아 매개변수로 넣어주는 것을 의미하는게 아닐까 싶다.

그래야 함수 활용 범위가 넓어진다. 그런 의미에서는 선언이라는 의미보다 추상이라는 의미가 더 와닿는 것 같다.

위의 내용을 좀더 

 

 

 

일단 함수 내부는 구체적으로 서술되어 있을 것.

거기서도 선언적 코드로.?

'Front-End > JavaScript' 카테고리의 다른 글

커링 curring  (0) 2023.03.17
if문과 삼항 연산자 구분해서 사용하기  (0) 2023.03.14
명시적 표현, 암묵적 표현  (0) 2023.03.14
Regex  (1) 2023.03.06
axios 공식문서 따라서 (일부) 작성하면서 이해하기!  (0) 2023.02.27