채용공고 올리기

박주한님을 응원해보세요!

지금 만족하고 있어요
책임감
목표 지향적
꼼꼼함
커뮤니케이션
신뢰

미리보기

기본 정보

이름
박주한
직업
프론트엔드 개발자
간단 소개

사용자의, 사용자에 의한, 사용자를 위한 개발을 하는 IT개발자 박주한입니다!

기술 스택

기술 스택

React, Next.js, JavaScript, TypeScript, Java, Spring Boot, HTML/CSS, Redux, react-query, SQL, Oracle, MySQL, recoiljs

경력

회사명

(주)인젠트

직급 | 부서 | 근무 유형

프로 | eCross R&D | 재직 중

근무 기간

2023.04. ~ 재직 중 (1년 6개월)

담당 업무

기업 자체 EAI 프로그램 (eCross) 개발 및 유지보수

  • 프론트엔드 개발

  • EAI 프로그램 내 데이터 흐름에 맞춘 프론트엔드 개발

  • 데이터흐름 차트, 데이터 교환 기능 및 데이터 확인 기능 가진 프론트엔드 개발

  • 기술스택 : React, Typescript, HTML/CSS, Redux, Recoil, React-Query

프로젝트

프로젝트명

감사원 공공감사시스템 차세대 개발

소속/기관명

인젠트

프로젝트 기간

2023.07. ~ 2023.12.

프로젝트 내용

감사원 공공감사시스템

1. 감사원 시스템 내 자사 EAI 프로그램 설치
2. 감사원 프로젝트 기획에 맞는 EAI 프로그램 내 기능 개발 및 커스터마이징
3. 감사원 공공감사시스템 및 행정공공센터 데이터 연계 및 DB 관리

프로젝트명

CAMPUS

소속/기관명

삼성청년SW아카데미 (SSAFY)

프로젝트 기간

2022.02. ~ 2022.04.

프로젝트 내용

[빅데이터를 활용하여 전국에 존재하는 캠핑장 상세 정보를 제공하고, 사용자의 니즈에 맞는 캠핑장을 추천해주는 서비스]

  • 팀 구성 : Front-End 1명 / Back-End 1명 / 데이터 처리 3명
  • 주 역할(Front-End / 팀장)
    • 초기 기획 (기능명세서 / 와이어 프레임)
    • 설문을 기반으로 한 추천 서비스 프론트엔드 개발
    • Firebase를 사용한 회원 관리
    • 컴포넌트 기능별 분류 & Axios 모듈화를 통한 개발 체계화
  • 수상 : 삼성청년SW아카데미 특화 프로젝트 우수팀
프로젝트명

PROMA

소속/기관명

삼성청년SW아카데미 (SSAFY)

프로젝트 기간

2022.04. ~ 2022.05.

프로젝트 내용

[소규모 개발팀을 위한 협업툴 프로그램 (일정, 계획 공유)]

  • 업무 관리 툴이 경제적으로 부담스러운 소규모 회사나 취준생 등을 타겟으로 하는 소규모 프로젝트 업무 관리 플랫폼
  • 팀 구성 : Front-End 2명 / Back-End 4명
  • 주 역할 (Front-End / 팀원)
    • Redux를 사용하여 원활한 상태 관리 진행
    • Websocket을 사용한 실시간 채팅
    • Ouath를 사용한 안전성을 높인 회원 관리
    • Style-Components를 사용하여 CSS 재사용성을 높이고 자유로운 커스텀 가능
    • 컴포넌트 기능별 분류 & Axios 모듈화를 통한 개발 체계화
프로젝트명

CAFE-IN

소속/기관명

삼성청년SW아카데미 (SSAFY)

프로젝트 기간

2022.01. ~ 2022.02.

프로젝트 내용

[관심사 기반 카페 큐레이션 SNS (반응형 웹 사이트)]

  • 기존 SNS의 불편한 점을 해소하고 사용자의 선호를 판단하여 카페를 추천하는 기능을 기획
  • 구성 : Back-End 3명 / Front-End 3명
  • 주 역할 (Front-End / 팀장)
    • 미디어 쿼리(@media)를 활용한 반응형 웹 구현
    • 각 사진의 크기를 정해둔 비율로 변환 후 최신순으로 정렬하여 피드형 출력창 제작
    • JAVASCRIPT, HTML, CSS를 통한 Front-End 구조 및 스타일 제작

포트폴리오

URL

link

https://perpetual-llama-459.notion.site/162bf2f6669e4fafb01bcf62dc230638

노션

교육

소속/기관명

삼성청년SW아카데미 (SSAFY)

종류 | 전공

사설 교육 | 웹 개발

재학 기간 | 재학 상태

2021.07. ~ 2022.05. | 졸업

소속/기관명

울산대학교

종류 | 전공

대학교(학사) | IT융합학부

재학 기간 | 재학 상태

2015.03. ~ 2019.02. | 졸업

소속/기관명

경기고등학교

종류 | 전공

고등학교 | 인문계

재학 기간 | 재학 상태

2011.03. ~ 2014.02. | 졸업

자격증

자격증명

Opic(영어)

점수 | 발급기관

IM2 | ACTFL

취득연월

2023.02.

자격증명

SQLD

점수 | 발급기관

최종합격 | 한국데이터산업진흥원

취득연월

2024.04.

자격증명

리눅스마스터2급

점수 | 발급기관

2급 | 한국정보톤신진흥협회

취득연월

2024.06.

외국어

외국어명

영어

점수

비즈니스 회화 가능

자기소개

자기소개

[본인의 장단점]


[단점을 장점으로 바꾼 노력]
저의 단점은 어릴적 내성적인 성격으로 좀더 적극적이고 진취적인 중ㆍ고등학교 시간을 보내지 못해 많은 아쉬움이 남습니다.


이를 극복하고자 대학 시절에는 저의 약점이었던 내성적인 성격을 바꾸기 위해 ROTC에 지원하였으며, 입관 후에도 전방 GOP로 지원하여 통신소대장으로 근무하였습니다. 전방이라는 특성상 부임 후 초기에는 내성적인 성격으로 소대를 지휘, 관리하기에는 쉽지는 않았으나 의지를 갖고 소대원들을 한명 한명 면담을 통해 집중 관리하며, 개개인에게 임무를 부여 후 결과를 다시 피드백하는 등 소대원들과의 팀웍을 형성하였습니다. 이 과정을 통해 리더십을 갖추게 되면서 자연스럽게 내성적인 성격 또한 적극적이고 진취적인 모습으로 변할 수 있었습니다. 또한 계급 사회의 보고와 명령체계를 통해 적극적으로 제 의견을 표현할 수 있는 자세도 가질 수 있었으며 북한의 총격 도발의 긴박함과 홍수, 산불과 같은 자연재해 복구 작업 등 힘든 상황 속에서도 버틸 수 있는 정신력과 빠른 결단력도 함양했습니다.


또한, 삼성 청년 SW 아카데미 (이하 SSAFY) 교육 기간 프로젝트에서 항상 팀장을 맡으며, 내성적인 성격을 보완하기 위해 노력했고, 팀장이기에 프로젝트에 대한 책임감으로 더욱 열심히 공부하여 부족한 실력을 채웠던 경험이 있습니다. 솔선수범 프로젝트 진행 방향에 여러 의견을 제시하고 부족한 경험을 채우기 위해 인터넷 강의, 유튜브, 구글링을 통해 알고리즘과 기술 스택을 공부하며 성실히 GitHub에 커밋하였습니다. 이렇게 부족한 부분을 채우려 노력하는 성실함과 프로젝트 간 목표한 방향으로 이끄는 리더십이 큰 장점이라 생각합니다. 이런 저의 강점을 바탕으로 프로젝트를 진행하여 모든 프로젝트에서 목표했던 바를 모두 완성할 수 있었고, 우수 팀원과 우수 팀에도 뽑혀 역량을 인정받을 수 있었습니다.
[도전적인 목표를 설정하고 지속적인 몰입을 통해 성장한 대표적인 경험]


[팀 프로젝트 간 혼자 프론트엔드를 개발해 본 경험]
삼성 청년 SW 아카데미에서 빅데이터를 기반으로 캠핑장 추천하는 프로젝트에서 혼자 프론트엔드를 맡은 경험이 있습니다. 2명이 프론트엔드 개발을 맡기로 하였으나 팀원이 개인 사정으로 그만두어 팀장을 겸직하며 혼자 개발을 진행했습니다. 혼자 모든 부분을 개발해야 한다는 막연함에 어려움을 느꼈지만, 처음과 끝을 모두 경험할 기회라고 생각하며 차근차근 개발을 시작했습니다.


먼저, 프로젝트 간 진행할 도전적인 목표로 이전 프로젝트에서 겪은 불편함을 해결을 위한 Next.JS 사용과 axios 모듈화를 설정하였습니다. React로 개발하면서 네트워크가 좋지 않거나 프로세싱 오래 걸리면 서비스의 초기화면에서 흰 화면만 보게 되는 불편함을 겪은 적이 있습니다. 이는 React가 CSR 형태이므로 나타나는 대표적인 단점으로 이런 불편함을 해결하고자 SSR 형태의 Next.JS를 통해 개발을 진행하기로 하였습니다. 완벽하게 프로젝트에 적용하기 위해 Next.JS 공식문서와 강의를 통해 공부하여 개발하였고, 미리 페이지를 렌더링하는 Next.JS를 통해 이전 프로젝트에서 겪은 불편함을 해결했습니다.


이전 프로젝트에서 백엔드에서 구현한 API를 프론트엔드와 연동하기 위해 사용한 Axios를 사용했습니다. 똑같은 기능의 Axios임에도 JS마다 새로 정의하여 사용하다 보니 코드가 방대해져 디버깅이나 유지 보수에 어려움이 있었습니다. 이를 해결하기 위해 모듈화를 적극적으로 활용하였습니다. 사용하는 모든 Axios를 하나의 JS파일에 정의한 뒤 필요한 위치에만 import하여 사용하도록 하였습니다. 그 결과 코드는 간결해지고 Axios의 중앙화로 디버깅과 유지 보수가 쉬워졌습니다.


비록 혼자 진행하여 힘든 프로젝트였지만, 도전적인 목표를 설정하고 몰입하여 개발한 결과 1등 수상이라는 성공과 함께 기술적인 부분에서 성장한 것을 느낄 수 있는 경험이었습니다.
[공동의 목표달성을 위해 상호신뢰와 소통을 바탕으로 협업을 진행한 사례]


[더 나은 개발자가 되기 위한 협업의 노력]
삼성 청년 SW 아카데미에서 팀장으로서 웹 서비스를 개발하는 팀 프로젝트를 진행한 경험들이 있습니다. 팀 프로젝트는 각자 실력, 경험 등이 다른 여러 사람이 모여 하나의 개발을 진행하기 때문에 소통을 바탕으로 한 협업이 매우 중요합니다. 팀장으로서 갈등을 방지하고 원활한 개발을 위해 항상 팀원의 의견을 경청하고, 의견과 각자의 특성을 반영하여 효율적인 작업 환경을 만들도록 노력했습니다.


협업을 통한 개발에 있어 가장 중요한 점은 상호신뢰라 생각합니다. 프로젝트를 진행할 때 서로 담당하는 분야가 다르므로 각자 작업한 내용과 진행 상황을 파악하는 게 쉽지 않습니다. 그로 인해 개발 기여도 문제로 갈등이 생기거나 기한 안에 개발하지 못하는 등 프로젝트 진행에 차질이 생기는 경우가 있습니다. 갈등을 막고 개발 간 상호신뢰를 하기 위해서 각자의 진행 상황과 앞으로의 계획을 직접 확인할 수 있도록 하는 것이 필요하다고 생각했습니다.


먼저, 프로젝트 시작 전 전날 개발한 코드를 공유하며 진행 상황을 설명하며 공유하는 회의를 하며 스크럼을 적극적으로 활용했습니다. 개발 간에는 코드마다 주석을 통해 세부적인 설명을 작성하여 다른 팀원의 이해를 돕도록 하였습니다. 마지막으로, JIRA와 Git을 적극적으로 활용했습니다. 각자 어떤 작업을 수행할 것인지 JIRA에 계획을 올려 공유하고 작업 내용과 진행 상황도 공유하였습니다. 개발 간에는 Git을 통해 코드 공유를 진행했습니다. Commit 정책을 정하여, Commit시 어떤 작업을 진행한 코드인지 명시한 뒤 Commit을 진행했습니다. 이런 공유 방법을 통해 서로 원활하게 상황을 공유하여 성공적인 프로젝트를 수행할 수 있었고, 그 결과 우수 팀원 선정과 개발한 프로젝트가 1등을 수상하는 성과를 올릴 수 있었습니다.
[어떠한 역량을(지식/기술 등) 강점으로 가지고 있는지, 그 역량을 갖추기 위해 무슨 노력과 경험]


[사용자의 접근성을 높이기 위한 반응형 웹 개발]
SSAFY에서 진행한 프로젝트 중 관심사 기반 카페 추천 서비스를 개발한 경험이 있습니다. 많은 사용자가 카페를 검색할 때, 전자기기를 많이 사용하기 때문에 웹뿐만 아니라 모바일 환경에서도 사용할 수 있는 것이 중요하다고 생각했습니다. 이를 구현하기 위해 미디어 쿼리(@media)를 사용한 반응형 웹을 개발하였습니다. 처음으로 제작하는 반응형 웹이었기 때문에 팀원들과 공식문서, 인터넷 검색, 강의를 통해 해당 기술을 공부하여 개발을 진행하였습니다. 그 결과 반응형 웹 구현을 통해 접근성을 높일 수 있었습니다. 현재는 좀 더 효율적으로 모바일 환경에서도 사용할 수 있도록 React-Native를 학습하고 있습니다.


[state 관리와 유지 보수를 향상하기 위한 기술]
프로젝트를 진행하는 데 가장 어려운 점으로 데이터 사용을 꼽을 수 있습니다. 각각 다른 컴포넌트에 있는 state를 사용하기 위해 props를 주로 사용하여 개발을 진행합니다. 하지만, 컴포넌트가 방대해지거나 상위 컴포넌트에서 하위 컴포넌트 state를 사용하는 경우 데이터를 불러와 사용하는 데 큰 불편함이 생깁니다. 이를 해결하고자 Redux를 state 관리 라이브러리로 선택하여 현재 세 번째 프로젝트를 개발하고 있습니다. Redux는 Store에서 전역 변수를 통해 state를 관리하므로 어느 위치의 컴포넌트에서도 쉽게 state를 사용할 수 있으며 유지 보수도 쉬워 props를 통한 state 관리의 불편함을 해결할 수 있었습니다.


또한, 프로젝트를 진행할수록 CSS 파일의 부피가 커지고 복잡해져서 유지 보수가 힘들었던 경험이 있습니다. 이런 불편함을 해결하기 위해 현재 styled-component를 적극적으로 활용하여 개발하고 있습니다. CSS를 모두 컴포넌트화하여 가독성이 떨어질 수 있지만, 자유로운 커스텀이 가능하여 유지 보수에 용이하고 단위 테스팅이 되는 장점으로 앞선 불편함을 해결하여 개발할 수 있었습니다.

댓글