안녕하세요. Mommoo 입니다.


프로그래밍에 관한 일을 하다보면 많이 듣는 용어중 하나 인,

비즈니스 로직(Business Logic)에 대하여 포스팅 합니다.




영역 구분하기



홈페이지 회원가입으로 예를 들어봅시다.


유저는 회원가입 양식 폼에 회원정보를 작성하고, 회원가입 버튼을 누르면 회원가입이 진행됩니다. 


이 과정 중 아이디 중복 검사, 본인 인증, 비밀번호 재 검사 등 유저가 통과해야 할 것이 많습니다. 


유저는 단순한 버튼 클릭으로 아이디 중복인지 아닌지,


본인의 인증이 올바른지, 비밀번호 가 올바른지 등등을  홈페이지의 글이나, 다이얼로그로 확인합니다.


유저 입장에선 아무렇지 않게 확인하고 있는 것 들이지만, 


프로그래머는 위에 일련의 인증할 것들을 구현하기 위해서는 생각보다 많은 수고를 들입니다.

프로그래머 입장에 서서, 영역을 나누어 보겠습니다.


위의 아이디 중복 검사를 예시로 들자면,

프로그래머는 유저가 입력한 아이디가 회원 중 아이디를 중복으로 쓰고 있는지 검사하기 위해


데이터베이스를 조사합니다. 데이터베이스를 조사 후, 중복 아이디가 없다면 유저에게 페이지 속 글


또는 다이얼로그로 아이디를 사용해도 된다는 표시를 해줍니다.


여기서 크게 2영역으로 나눌 수 있습니다. 


하나는 중복 아이디가 있는지 없는지를 검사하기위한 일련의 과정들 ( 1번째 영역 )


나머지는,  유저에게 단순히 텍스트나 다이얼로그로 알려주는 것이 있습니다. ( 2번째 영역 )


2번째 영역은 흔히, Presentation 영역 혹은 View 영역 이라고 많이 불리우는데,


가공된 데이터를 단순히 표시만 해주는 것입니다. (ex 아이디가 중복됬습니다 표시, 비밀번호 재 검사를 실패 했습니다. 등등)


그 데이터 가공을 담당하는것이 1번째 영역 흔히들 Logic 영역, Model 영역이라 불립니다.



비즈니스 로직이란?



위에서 소개한 영역 2가지 중, 첫번째 영역에서의 코딩을 흔히, 비지니스 로직이라 부릅니다.


위의 아이디 중복찾기를 다시 예시로 들자면, 아래와 같은 비지니스 로직이 작성될 것입니다.


회원이 작성한 아이디 값 저장하기 -> 회원정보가 있는 데이터베이스 연결 ->

데이터베이스에 회원이 작성한 아이디 값이 있는지 Select 
-> 


회원의 아이디가 이미 있는지 없는지 여부를 데이터화 하여 저장 -> 


데이터베이스 연결 끊기 -> View영역에게 가공된 데이터 전달


이러한 비지니스 로직은 유저 눈엔 보이진 않지만, 유저가 바라는 결과물을 올바르게 도출하기 위해 코드로 짜여집니다.


즉, 프로그래머는 유저가 원하는 행위를 컴퓨터에게 잘 전달하기 위해서는 비즈니즈 로직을 잘 구상해야 한다는 의미입니다.

이처럼, 비지니스 로직은 프로그래밍에서 빠질 수 없는 요소이며, 응용 프로그램의 핵심이 됩니다.




비지니스 로직은 유저가 바라는 결과물을 코드로 옮기므로 코드가 자주 변경되므로, 코드 품질도 매우 중요합니다.


비지니스 로직이 정리되지 않고 이곳 저곳 산재 배치되면,


프로그래머는 코드 관리에 어려움을 느끼고, 개발을 어렵게 하는 요인이 될 수 있는 것입니다.


그로 인하여 생산성, 품질등이 저하 됩니다.








비즈니스 로직은 정말 중요하지만, 유지보수 와 확장성을 고려한 코딩을 하기란 쉽지 않습니다.


프로그래머들은, 조금 이라도 더 비즈니스 로직을 잘 작성하기 위해 


프로그래밍 아키텍쳐를 공부를 해야하는 이유가 아닐까 합니다.

( 예를들어, 웹에서 주로 쓰이지만 대중적인 MVC, 안드로이드 에서 인기를 얻고 있는 MVP등등 ) 

'용어정리 > 프로그래밍용어' 카테고리의 다른 글

절대경로, 상대경로란?  (7) 2018.12.06
형상관리의 개념과 이유  (0) 2017.11.01
DTO와 VO란?  (2) 2017.02.08
GET방식 과 POST방식  (32) 2016.12.10
컴포넌트(Component)란?  (8) 2016.10.20

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts