카테고리 없음

개발하면서 느낀점들 이랄까

베노 2024. 11. 11. 19:51

개발을 하다보면 여러가지 많은사람들이 막히는 중점으로 이야기보따리를 풀어볼려고한다

물론 개발을 취미로 즐겨하는 사람이지만, 그래도 내 지식선에서 한번 끄적여볼려고 한다 내가 이렇게 적어놓고 누군가 보고 "어? 이새끼 이렇게 하니깐 이게 정답이네?"리고 생각은 안해줬음 좋겠다

 

사람들이 말하는 개발에서는 크게 3가지의 포지션이 나뉜다.

프론트엔드

백엔드

풀스택

 

여기서 하나씩 풀어서 이야기 한다.

 

프론트엔드

프론트엔드는 사용자와 직접적인 소통을 하는 포지션이다. 즉 사용자가 어떤걸 원하는지 파악을 해줘야 한다.

여기서 사용자가 원하는거라는건 사용자가 원하는 디자인, 사용자가 원하는 기능, 사용자가 원하는 시스템 및 컨텐츠 등이다. 하지만 사용자가 다 원한다고 무작정 만들어주는건 안된다. 훈육이라는게 있듯이 안되면 안되는거고, 되면 뭐 가능한거고~

또한 내가 만들려는 프로그램이 이런 시장에서 잘 먹히는지, 혹은 다른 프로그램이나 회사들은 어떤 기능을 쓰는지도 봐야 한다. A와 B라는 프로그램은 현대적인 시스템을 도입하는 반면, 내가 만든건 구석기 시대 뗀석기 같은 기능을 하면 당연히 사용자들은 매머드가 날뛰던 시대에서 탈주하고 싶은 마음이 몰아치는거다. 프론트엔드는 사용자 저장공간과 시스템 자원을 쓰는 프로그램을 만드는것이기 때문에 이런 시스템 자원관리도 매우 중요하다. 게임으로 비유하면 A라는 모니터는 FPS가 60hz고 B라는 모니터는 240hz면 당연히 후자를 선택하는것처럼 이런 자원관리도 신경써야하는 성능최적화가 중요하다

 

프론트엔드같은 경우는 대부분 프레임워크를 쓴다. 이런 프레임워크는 개발자 입맛에 맞게 나온거기 때문에 본인이 진행하는 프로젝트에 맞게 쓰면 되지만, 난 최근 안드로이드 네이티브를 버리고 프레임워크로 갈아 탔다. 확실히 피부가 좋아진거는 맞다 ㅇㅇ 플러터 짱

프론트엔드를 하다보면 이언어 저언어를 많이 쓰이는 경우가 있다. 그래서 하나의 언어를 마스터 하고 그 후 다른 언어를 살짝 찍먹도 괜찮다고 생각한다.

 

백엔드

백엔드는 사용자가 모르게, 은밀하고 음흉하게 데이터를 주고받을수있게끔 통신을 해주는거다.

백엔드는 데이터베이스와 프론트엔드를 연결시켜주는 대교(다리)같은 역할이다. 예를 들어 내가 미국에 있는 여친한테 중요한 정보를 줄려고 가정하면, 내가 미국으로 가야 하는건데 여기서 나를 사용자가 프론트에 입력한 데이터라고 하고 미국에 있는 여친을 데이터베이스라고 해보자. 그럼 우리는 미국으로 가는건 비행기 or 배 이 선택지가 있고 이런 역할을 백엔드가 해주는거다. 백엔드는 사용자가 어떤 정보를 원하는지 프론트엔드를 통해 정보를 받았다면 프론트는 그 정보를 백엔드 서버까지 전송해 주고 백엔드는 그 정보를 다시 데이터베이스로 넘겨주는거다. 반대로 데이터베이스는 데이터를 사용자에게 보내줄려고 하면 백엔드를 통해 다시 프론트로 보여주는거다. 하지만 그냥 구축만 하고 끝이 아니라 사용자의 중요한 데이터는 곧 나의 돈이기 때문에 나만의 돈을 지키기 위해서는 보안설정도 중요하다. 기본적으로 통신(네트워크)의 지식이 꽤 요구될거다. 유출된다면 뭐 나의 돈이 사라지는거고 내가 피똥싸면서 만든 프로그램은 한순간에 망하는거고

 

백엔드는 어쨋든 서버이기 때문에 시스템적으로 고려해야하는게 많을거다. 서버는 리눅스? 윈도우? 이런 고민부터 node.js? Spring? 이런 고민도 있다.

 

풀스택

프론트 + 백엔드 (걍 혼자서 머리 잡고 고통을 호소하고 지 혼자 화병 돋는 포지션)

 

본인이 개발을 진행하고 싶다면 우선 포지션을 고르는게 빠를거다.

본인이 사용자와 교감을 잘 하고 피드백을 잘해준다 → 프론트

난 누군가의 정보를 소중하고 통신을 잘 할 자신이 있고 이런게 매력이다 → 백엔드

난 프론트와 백엔드의 매력을 느끼고 싶고 강남의 한강뷰가 보이고 30층짜리 아파트에 들어가서 살고 싶다 → 풀스택 

 

프론트와 백엔드는 서로 요구하는 길이 다르고, 언어도 다르다 보니 포지션을 고르고 거기에 맞는 길을 선택하는게 좋은곳이지 않을까 싶다. 위에 설명한거는 대학교 프로젝트나 그런거에 선택할때 쓰고 회사에서 진행하는 개발은 어차피 다같이 고통을 나누는것이기 때문에 괜찮다 심지어 회사는 저런 고통보다는 직장상사의 꼰대같은 소리가 제일 스트레스다. 사회생활 없는 친구는 모를거다. 직장상사의 성대가 열리는 순간 걍 집에가고 싶은 마음이 확 나올거다.     (본인경험담)

 

쨋든 이런 부분을 잘 선택하고 나도 개발에 프론트만 7년 넘게 하다보니 꽤 쉽지는 않다고 말하고 싶다. 물론 그만큼 식간이 있으니 괜찮겠지만, 시대를 빠르게 변하고 이런 시대를 빠르게 적응할려다 보니 쉽지가 않다.