ohjihwan123@naver.com scroll

About Me

오지환 @Ohsaam

끊임없이 도전하고
배우려고 하는
개발자입니다.

에이비씨마트에서의 알바 경험이 컴퓨터 공부 여정을 시작하게 한 계기였습니다. 처음에는 신발 유통 매장에서의 알바로 시작했지만, 매장의 재고 관리 및 애플리케이션, 웹에서 발생한 문제에 직면하게 되었습니다. 이는 단순한 작업의 불편함이 아니라 실제 업무 효율성에 큰 영향을 미치는 문제였습니다.

이러한 도전에 대응하기 위해, 무작정 C언어를 공부하기로 결심했습니다. "Do it C언어"라는 교재를 통해 시작한 이 과정은 어려움이 있었지만, 계속 노력하면서 보다 깊은 이해와 다양한 시야를 얻을 수 있었습니다. C언어를 통한 프로그래밍의 즐거움에 빠져들게 되었고, 처음에 어려웠던 도전이 흥미로운 여정으로 변화했습니다.

지금은 학문적인 지식과 더불어 다양한 프로젝트와 실무 경험을 통해 실력을 키워나가고 있습니다. 에이비씨마트 알바에서 시작된 이 공부의 여정은 저를 끊임없는 성장과 개발로 이끌고 있습니다. 앞으로도 끊임없는 도전과 학습을 통해 더 나은 능력을 갖추어 나가겠습니다.

Skills

Java
Spring
mybatis
Oracle
C
Python
JavaScript
Jsp
Spring Boot

Affiliation

  • 부용고등학교
    2013 ~ 2016
  • 가톨릭대학교
    국제학부
    컴퓨터정보공학부
    2016 ~
  • 정보처리기사
    2023.09.01 취득

Projects

  • 그룹웨어(WorkConGW) - Backend개발


    그룹웨어 개발(Spring Boot, css, html, JavaScript, jquery, Jsp, Jstl)클릭 시 깃허브 페이지로 이동합니다.

    팀(4인)-팀장

    - ERwin을 통한 데이터베이스 설계 진행 및 개발표준정의서, 요구사항정의서, 기능명세서,상관모델링 진행

    - 클라이언트 관점에서 볼 수 있는 ERD 설명서 문서작업 진행

    - 권한 별 로그인(비밀번호-암호화) 처리 구현, 홈화면, 마이페이지 구현

    - 메일센더 라이브러리를 이용한 아이디찾기 / 비밀번호찾기 구현

    - 익명게시판 구현

    - 전자결재 구현

    - 관리자페이지 구현

    - 페이징처리 VO 클래스 로직 구현 및 공통코드 제작

    - AWS EC2 디비 구축 진행

    - 프로젝트 이슈정리

    - 요구사항정의서/기능명세서/상관모델링 사이트

    - 테이블 목록정의서/테이블 정의서 사이트

    - ERD설명서 사이트

    게시판/전자결재/관리자

    로그인/아이디찾기/비밀번호찾기

    메일인증/인가/최초비밀번호설정

    - ERD(총 테이블 46개)


    🎇프로젝트 회고


    프로젝트 팀장으로 일하며, 특히 디비설계를 진행하면서 여러 가지 경험을 쌓았다. 업무에 대한 이해는 프로젝트의 핵심이라고 느꼈다. 처음에는 업무에 대한 전반적인 흐름을 파악하기 어려워 막막한 감정을 느꼈다. 그러나 상관모델링을 통해 업무의 복잡성을 해소할 수 있었고, 그 결과로 프로젝트 진행이 원활해졌다. "막막함"은 모든 개발자가 처음에 경험하는 감정이라고 생각한다. 하지만 이러한 어려움을 극복하면서 자신의 역량을 향상시킬 수 있다는 것을 깨달았다. 프로젝트를 진행하면서 막막함을 자신감으로 변화시키는 과정은 매우 의미있었다.

    프로젝트를 완료하면서 문서작업과 협동심에 대한 중요성을 다시 한번 깨달았다. 프로젝트의 성공은 팀원들 간의 원활한 소통과 협력에 크게 의존한다는 것을 깨달았다. 문서 작업은 프로젝트의 전반적인 흐름을 정리하고 공유함으로써 팀원들 간에 일관성 있는 이해를 도울 수 있었다. 또한, 팀원들과의 협동은 문제 해결과 업무 진행에 있어서 효과적인 방법이었다. 이런 경험들을 통해 프로젝트 리더로서의 역량을 키우고, 팀원들과의 원활한 협업을 통해 프로젝트의 성공을 이끌어낼 수 있었다. 이러한 경험들은 미래의 프로젝트에서 더 나은 리더십과 팀워크를 발휘할 수 있도록 도움이 되었다.
  • 도서관리프로그램(2023) - Backend개발


    도서관리프로그램 개발클릭 시 깃허브 페이지로 이동합니다.

    개인프로젝트(1인)

    HTML, JavaScript, CSS, firebase(DB)


    🎇프로젝트 회고


    우선 제일 아쉬운 부분이 기존에 진행했던 깃헙 레포지토리를 private로 바꿨다. 그 이유는 내 API Key를 노출 시켰기 때문이다. 처음에 env. 파일 설정을 하고 API키를 부여하는지 프로젝트가 마무리 될 쯤 알게됐다. 회사였으면 정말 큰일 날 뻔 했다. 이렇게 또 하나 배웠다. 보안상 이슈가 제일 중요한 부분인데 이 부분을 신경쓰지 못했다는 점이 아쉬웠다.

    처음으로 파이어베이스라는 NoSQL를 사용하면서 RDBMS랑 무엇이 다른가? 라는 생각을 처음으로 하게 되었다. "정해진 스키마가 있는가?" 에 대한 고찰을 처음으로 한 것 같다. NoSQL로 어떻게 저장되는지 자바에서는 어떻게 처리하는지에 대한 의문을 가졌다. 앞으로 프로젝트를 진행한다면 RDBMS랑 Nosql 2개의 서버를 이용해서 프로젝트를 진행해보고 싶다.

    배움은 즐겁다. 모르는 부분이 많다는 것은 아직 부족하다고 생각한다. Book 프로젝트를 통해서 더 발전하는 계기가 되었다.
  • Socket Programming(2023) - Backend개발


    채팅프로그램 개발클릭 시 깃허브 페이지로 이동합니다.

    개인프로젝트(1인)

    Java, JFrame, Oracle


    🎇프로젝트 회고


    사이드 프로젝트를 진행하면서, 객체지향언어가 무엇인지 기반을 확립한 프로젝트였다. 그리고 "과연 내가 SRP원칙을 준수하여 개발했는가?"에 대한 답변은 "NO"이다. 솔직히 클래스는 오직 하나의 책임만 가져야 하는데.. 많은 책임을 지게 한 것 같다.

    그리고 개발을 진행하면서, "싱글톤"이 무엇인지 알게되었다. "싱글톤"이란 개념을 처음 접한건, Wumpus Wolrd에서 Wumpus의 생명주기를 관리 할 때 싱글톤을 처음 접한 것 같다. 하지만 그 땐, 파이썬으로 구현했다. 그 때 당시에는 "도대체 싱글톤이 뭔데?" 진정한 싱글톤에 대한 의미를 알지 못하고 당시에는 개발하는데 급급 했다. 하지만 chat Java를 통해서 싱글톤에 대한 이해도가 상승했다. 내가 이해한 싱글톤은 "객체의 인스턴스가 오직 1개만 생성되는 패턴"이다. 디비에 접근하는 객체는 싱글톤으로 구현했지만, 나머지 인스턴스화된 객체들을 많이 생성했다. 이 부분이 리팩토링 하게 된다면, "잦은 인스턴스화"를 "싱글톤"으로 바꿔서 구현해보고 싶다. 이어서 GC를 공부하여 어떻게 객체가 Free 되는지 C언어와 자바를 비교 할 예정이다.

    그리고 프로젝트 설계를 진행하면서, 모든 설계는 완벽하게 할 수 없다는 것을 깨닫게 되었다. 그리고 객체지향프로그래밍이 무엇인지 알게되는 계기가 되었다 앞으로 팀프로젝트를 진행한다면, OOP원칙에 의거해 프로젝트를 진행하고 싶다.
  • Wumpus World(2023) - Backend개발


    KB 기반 에이전트 구현 및 Wumpus 구현클릭 시 깃허브 페이지로 이동합니다.

    클릭 시 노션 페이지로 이동합니다.

    인공지능(5인)

    Python

    🎇프로젝트 회고


    Wumpus World 프로젝트를 진행하면서, 객체지향에 대한 초석을 다지는 계기가 되었다. 나는 파이썬은 무조건 절차지향적인 프로그래밍을 해야 된다는 선입견을 갖고 있었다. 하지만 Wumpus의 생성개수를 조절하면서, "싱글톤 구현이 가능하다는 것을 깨닫고" 파이썬에 대한 프로그래밍적 사고의 틀을 바꾸게 되는 계기가 되었다.

    프로젝트를 진행하면서 내가 아직도 많이 부족하다는 생각을 많이 했다. 그리고 팀원들과 소통을 하면서 노션을 처음 사용했는데, 협업이 프로젝트를 진행하는데 있어 정말 중요한 요소인 것 같다. 아쉽게 깃을 활용하여 개발하지 않다는 점이 아쉽다. 시간적 여유가 있다면, 깃을 공부하여 협업 능력을 기르고 싶다.
  • Socket Programming(2022) - Backend개발


    TCP/IP 활용한 이메일 전송 프로그램클릭 시 깃허브 페이지로 이동합니다.

    컴퓨터와네트워크(5인)

    Python,twilio,tkinter,hashlib

    🎇프로젝트 회고


    팀 프로젝트를 처음 접했다. 간단한 소켓프로그래밍 구현이였지만, 협업이나 역할 분배에 대한 이슈들이 존재했다. 개발 진행 시 코드를 어떻게 관리해야 되는지 가장 고민 했던 것 같다. 그리고 소켓이 무엇인지, 네트워크가 왜 필요한지 피부로 느낀 것 같다. 프로젝트를 성공적으로 완료 했지만, 부족함을 느끼고 더 발전해야 겠다는 계기가 되었다.
bg