- 웹 애플리케이션 개발자에게 기본기란 WAS 통신에 제반되는 언어, 프레임워크, DBMS, 협업, CI/CD 및 배포, 그 외 CS 지식 및 성장을 지향하는 태도라고 할 수 있습니다.
- 저는 부트캠프 과정 이전부터 지금까지 다양한 온오프라인 스터디를 조직 및 참여하여 개발 공부를 적극적으로 해왔습니다.
- 그 성과로 Java와 SpringBoot 프레임워크를 이용한 팀 프로젝트 2건에서 회원, 미니 홈페이지, 게시판, 랭킹, 채팅, 욕설 필터링 등 다수 도메인에서의 기능을 성공적으로 구현하였으며, 이 과정에서 Spring AOP, S3 이미지 처리, STOMP-웹소켓 프로토콜 활용, GitHubAction과 Docker를 활용한 CI/CD 등 스프링 프레임워크의 핵심 기능과 라이브러리, 외부 네트워크 처리에 관한 귀중한 경험을 얻었습니다.
- 더불어 정보처리 기사와 SQLD 자격증 스터디를 운용한 결과로 응시한 모든 시험에서 자격증을 발부 받았습니다.
- 현재의 목표는 제너럴리스트, 근미래의 목표는 스페셜리스트를 지향하고 있습니다.
- 신입으로서의 저는 Java, DBMS, Spring, Spring Boot, Git, MY-SQL, JPA, JWT, Oauth, AWS 등의 기술을 보유하고 있습니다.
- 소프트웨어 엔지니어링 부트캠프를 통해 다양한 교육과정을 이수하고 자바, 스프링/스프링 부트, MySQL에 대한 이해와 활용 능력을 갖추었습니다.
- 식물인 커뮤니티 'growstroy`에서 '요구사항 정의', 'API 명세 작업', 'DB Modeling', Stomp 라이브러리를 이용한 채팅, Crontab을 활용한 랭킹 시스템, S3를 통한 게시판 CRUD 및 이미지 처리, 미니 홈페이지 오브젝트 구입 및 배치, Spring AOP를 활용한 다중 도메인에서의 욕설 예외 처리 구현, CompletableFutre 비동기처리를 통한 회원가입 인증 이메일 성능 개선에 참여한 바 있습니다.
- 다른 프로젝트인 'Stackoverflow 클론코딩'에서는 Spring Security와 JWT, Oauth를 이용한 회원 도메인 관리, RestControllerAdvice를 활용한 예외 응답 처리를 구현하였습니다.
- 상기 프로젝트에서 저는 STOMP-웹 소켓을 이용한 실시간 QNA 채팅, AOP를 활용한 다중 도메인에서의 욕설 처리, Crontab을 활용한 주간 랭킹 시스템, '식물 일지' 게시판 CRUD 및 이미지 처리, 미니 홈페이지 '정원' 관련 CRUD, 비동기 처리를 통한 회원가입 이메일 성능 개선, GitHubAction과 Docker를 활용한 AWS EC2 배포를 수행했습니다. 그 외 문서작업으로는 요구사항정의서 및 API 명세서, DB 모델링 등을 작업하였습니다.
- 다양한 도메인 기능을 스스로 구현하며, 적용하고 싶은 기술을 스스로 학습하여 프로젝트에 접목하는 과정에서 보람과 웹 애플리케이션 프로젝트 전반에 대한 이해를 얻었습니다.
- 스택 오버 플로우 클론 코딩 | Repo :
- 상기 프로젝트에서 저는 로그인 기능 구현, 회원가입 기능 구현, jwt토큰 발급 및 인증 기능 구현, 구글 Oauth2 구현, 유효성 검증, 예외처리 및 응답 섹션을 맡았습니다.
- 프론트 개발자 분과의 협업을 통하여 자체 회원가입 로직과 구글 OAuth 로직을 통합했으며, 운영 서버에서 성공적으로 수행되고 적용되는 것을 확인했습니다.
- 우수한 팀원들과 함께 CI/CD 툴인 GithubAction을 이용하여 AWS EC2 인스턴스에 운영 브랜치를 자동으로 통합/배포하는 경험을 하였고, CI/CD의 중요성 및 생산성을 다시금 깨닫게 되었습니다.
- 정보처리기사 실기 스터디 내용 정리
- MySQL 스터디 내용 정리
- 블로그 (현재는 CS 스터디를 운영하면서 블로깅을 잠시 쉬고 있습니다.)
- 정보처리기사 실기 | 한국산업인력공단 | 2023.11
- SQL개발자(SQLD) | 한국데이터베이스진흥센터 | 2023.10
코드스테이츠 | 소프트웨어 엔지니어링 부트캠프 (백엔드)에서 다음과 같은 교육과정을 이수하였습니다.
- Git
- Java (기본 문법, OOP등 소프트웨어 엔지니어링, 스트림&람다, 스레드, JVM, 자료구조)
- 자료구조/알고리즘
- 네트워크 (웹 애플리케이션 작동원리, HTTP)
- 데이터베이스 (MySQL)
- 스프링 및 스프링 부트
- JPA & 하이버네이트
- 테스트, 문서화
- 빌드 실행 배포 (AWS, Docker, GithubAction)
- 스프링 시큐리티
- 프로젝트 2건
현재의 저는 기본기 함양을 위해 제너럴리스트로서 노력하고 있습니다.
하지만 언제나의 목표는 이 분야의 스페셜리스트입니다.
다음은 기술 스택과 제가 생각하는 운용 수준을 기술한 것입니다.
- 자바 : (클래스, 객체, 인터페이스 및 OOP에 대한 기본적 개념 이해 및 활용, 프로젝트에서 애너테이션, 스트림 및 람다식을 활용한 데이터 처리, Optional 클래스를 활용한 null처리, RuntimeException에 대한 기해를 기반으로 비즈니스 예외 처리)
-
스프링 / 스프링 부트 : (HTTP 메서드에 따른 기본 CRUD 코드 구현, 스프링 빈 컨테이너를 통한 빈 객체 DI 및 비즈니스 로직 설계, Spring AOP를 활용한 코드의 재사용성이 높은 설계 지향 )
-
ORM(JPA) : ( Spring Data JPA를 바탕으로한 Repository 구성 및 활용, MySQL 기반의 데이터 베이스 DDL, DML 작성, @Transactional을 이용한 기본 트랜잭션 처리)
-
테스트 : (JUnit5, Mockito를 이용한 유닛 테스트 및 레이어 Mocking 테스트)
-
Git : (Git flow, 컨벤션에 입각한 버전 관리)
- 스프링 시큐리티 : 중하* (OAuth2.0, JWT 토큰을 사용한 기본적인 인가 흐름 설계 및 구현, 역할 기반에 따른 ACL 구현)
- Docker / 클라우드 : 중하* (Docker 및 GitHub Action, AWS EC2를 이용한 CI/CD 파이프라인 구현)
- 기타: 자바 기본서 스터디, MySQL 스터디, 정보처리기사 스터디 운영 및 참여 (포트폴리오 참조) 모든 자격증 스터디에서 자격증을 취득한 바 있습니다.