채용공고 올리기

권동혁님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
권동혁
직업
몰입이 즐거운 개발자 권동혁입니다!
간단 소개

안녕하세요! 저는 컴퓨터응용기계과 전공 과정중G-Code를 통해 기계와 대화하는 프로그래밍에 매력을 느껴 웹 개발 공부를 시작했습니다. 코드를 작성하고, 개발을 할 때 깊게 몰입해 시간이 어떻게 가는지 모르고 몰입하는 저의 모습에 개발자란 직업의 적성을 느꼈습니다. ‘생명주기가 긴 Application을 개발하자!’ 라는 마음으로 어떻게하면 확장성있고, 유지 보수가 편한 코드를 작성 할 수 있을까 고민하며 개발하고있습니다. - 확장성 있는 코드 작성을위해 layer간 의존성을 낮추려 노력하고, 유지 보수 가 편한 코드작성을 위해 테스트 코드를 작성해 테스트 케이스라는 안전망안에서 공격적인 Refactoring을 진행하고있습니다.

기술 스택

기술 스택

Java, TypeScript, Spring Boot, Spring Security, JPA, MySQL, Docker

프로젝트

프로젝트명

TomorrowLand

소속/기관명

개인 프로젝트

프로젝트 기간

2023.12. ~ 2024.02.

프로젝트 내용

[ 지식정보 공유 커뮤니티 사이트 ]
질문자: 20 Point를 차감하고 답변을 채택
답변자: 답변이 채택될시 50 Point 보상 ( Point에 따른 사용자 Level 존재 )
답변글은 질문자 본인만 확인 가능한 시스템.

-기능 구현

  1. JWT 를 통한 인증 및 인가 시스템 구축.

    • AccessToken → Web Storage 저장
    • RefreshToken → Cookie 저장
  2. AWS Cloud Image Upload , Download 기능 구현

    • Multi Part가 아닌 Octet-Stream을 활용해 간편하고 빠른 이미지 업로드 기능 구현
  3. 조회수 및 좋아요 기능의 동시성 문제 해결

    • 낙관적 Lock 과 비관적 Lock 중 비관적 Lock 을 활용해 동시성 문제 해결
    • 성능 테스트를 위해 Jmeter 활용.
  4. Spring REST Docs 를 활용해 BackEnd API 문서화 진행

    • @AuthenticationPrincipal Error로 인해

    MockMvc를 설정할 때 standAloneSetup() 가 아닌 @AutoConfigureRestDocs 활용해 해결.

  5. Lyerd Architecture 사용, Layer들이 상위 Layer를 의존하지 않도록 구현

    • 상위 Layer를 의존하지않게 확장성 있는 Application 개발

그 외 프로젝트를 개발하며 고민했던 점들 …

  • Teat Code에 관한 고민
    • Testable Code를 만들기위해 AWS S3와 같은 외부 API 분리 ( 관심사의 분리 진행 )
    • 외부 API 혹은 외부 라이브러리의 API 또한 테스트를 반드시 진행해야하는지에대한 고민
    • 각 계층별 테스트의 목적에 관한 고민 ( Controller 계층에서 테스트해야하는 점들 학습 )
프로젝트명

MultiplexShop

소속/기관명

그린아트컴퓨터학원

프로젝트 기간

2023.08. ~ 2023.09.

프로젝트 내용

다목적 복합 쇼핑몰 웹사이트입니다.

  • 기여한 내용
    1. 사용할 기술 스택,아키텍쳐, 패키지 구조, 방향성 등 팀프로젝트내 컨벤션 도입

      • 협업을 하는데에 있어 서로의 코드를 이해하지못하거나 헷갈리지않도록 Git commit log, Method 및 Class 작성시 컨벤션을 지정했습니다.
      • 테스트 코드 작성 용이함을 위해 계층형 아키텍쳐를 적용했습니다.
      • 개발단계 H2 DataBase → 운영단계 MySQL
        • 개발 단계에서 H2를 사용함으로 테스트 코드 작성시의 편리함
    2. 고객문의 게시판 및 상품 게시판 CRUD 개발

      • 게시판 CRUD와 AJAX를 활용한 댓글 기능을 개발했습니다.
      • 이미지파일을 User가 직접 업로드를 하여 외부 요청에서온 파일 처리를 할 수 있는 기능을 구현했습니다.
    3. Sping Interceptor를 활용한 User의 인증 및 인가 기능

      • Interceptor 를 공부하며 WAS부터 Dispatcher Servlet을 거쳐 Handler까지
        Spirng의 기본 구조를 이해 후 인증 및 권한부여 시스템을 개발했습니다.
      • 또한 User가 접속하려는 URL를 Interceptor 를 통해 로그를 Console에 남기도록 적용했습니다.
      • Session 을 이용해 User의 로그인 기능을 구현했습니다.
    4. Junit을 활용한 자동화 테스트 코드 작성

      • @SpringBootTest @Webmvctest 와 테스트코드 통합 클래스를 개발해
        테스트 실행시 매번 Spring Boot 서버가 올라가지않고 빠르게 실행되도록 개발했습니다.
    • Presentation Layer 테스트시 외부에서 필요한 요청의 경우 Mock을 활용했습니다.

포트폴리오

URL

link

이력서

노션
link

개인블로그

티스토리
link

깃허브

깃허브
댓글