[Project] 조사모아(Josa-moa) 오픈소스 개발일기(2) [Builder Pattern 적용, Package 구조 잡기 등]

2022. 10. 15. 02:27·◈ Yermi Project/조사모아(Josa-moa)📬
728x90
 

[Project] 조사모아(Josa-moa) 오픈소스 개발일기(1) [프로젝트 구축부터 배포 테스트까지]

- 조사모아(Josa-moa) 오픈소스 개발일기 (1) 지난 마이바티스 기여 이후, 오픈소스에 관심을 갖게되어 라이브러리를 배포해보고 싶다는 생각이 들었고.. 너무 큰 규모도 아니면서 뭔가 도움이 되는

yermi.tistory.com


- 조사모아(Josa-moa) 오픈소스 개발일기(2)

조사모아 배포 테스트까지 완료하고, 이것저것 더 시도해보았다.
그러면서 부딪히고 고민하게 된 문제점들을 정리했다.

1. 빌더 패턴(Builder Pattern) 적용?

조사를 정해줄 때 어떻게 하면 가장 효율적일지 고민하다가..
'메서드 체이닝 형태로 만들어보면 어떨까?'하고 바로 시도해본 패턴

Builder Pattern이 적용된 JosamoaBuilder

 

Builder를 다 만들고 테스트 해보니, 우리 프로젝트와는 맞지 않는 생성패턴이란 걸 알았다.
우리는 문장을 만들어주는 라이브러리가 아닐 뿐더러, 만들어준다 해도 형식이 매우 제한적..

물론 패턴에 대한 이해도가 부족하여 발생한 상황일 수도 있.... 크흠..😂😂

S, V, O, C만 사용하는 매우 제한적인 문장만 구현할 수 있다.


2. Package 구조

"package 구조를 어떻게 짜야하는 것인가?" 처음부터 지금까지 계속해서 고민하던 부분
웹 페이지 package 구조는 조금은 이해한다 해도, 라이브러리의 package 구조는 전혀 몰랐다.

이것이 현재 우리의 package 구조

 

계속 고민하면서 '라이브러리의 구조'를 분석해야겠다 생각이 들었다.
Gson으로 만족하지 못했던 나는 썸네일 라이브러리 Thumbnailator의 구조를 분석하였다.
(추가로, 내가 알고있는 라이브러리 또한 매우 적다는 것을 인지하였다.. 더 공부해야지✍🏻)

Thumbnailator의 package 구조 / 해당 라이브러리의 구조를 많이 참고할 예정!


 

GitHub - coobird/thumbnailator: Thumbnailator - a thumbnail generation library for Java

Thumbnailator - a thumbnail generation library for Java - GitHub - coobird/thumbnailator: Thumbnailator - a thumbnail generation library for Java

github.com


3. 매우 clean하지 않은 코드들

코드 또한 매우 비효율적이였다. 같은 코드들이 계속하여 반복되고..
사용자 입장을 생각해보면 너무 불편할 거 같아서 대폭 수정 예정이다🧨

격들을 나눠서 처리하는 게 매우 비효율적이란 판단이 섰다. / 계속하여 반복하는 코드들


- 그래, 우린 아직 미생이야

package 구조부터 객체 생성, 메서드 구현까지.. 아주 상처투성이인 프로젝트이지만...💦
그래도 그만큼 많이 부딪히면서 새로운 것들을 배우고 익히는 중!

더 나은 한 걸음을 위해, 아자아자~😎

 

GitHub - josa-moa/josa-moa: 한국어 조사 처리 프로젝트 [자바(Java)]

한국어 조사 처리 프로젝트 [자바(Java)]. Contribute to josa-moa/josa-moa development by creating an account on GitHub.

github.com


728x90
'◈ Yermi Project/조사모아(Josa-moa)📬' 카테고리의 다른 글
  • [Project] 조사모아(Josa-moa) 오픈소스 라이선스 등록 [Apache License 2.0]
  • [Project] 조사모아(Josa-moa) 1.0.3 패치노트 [한국어 조사 처리 라이브러리, josamoa-1.0.3]
  • [Project] 조사모아(Josa-moa) 오픈소스 개발일기(3) : THE END [문자열 종성의 받침에 따라 조사를 붙여주는 한국어 조사 처리 라이브러리]
  • [Project] 조사모아(Josa-moa) 오픈소스 개발일기(1) [프로젝트 구축부터 배포 테스트까지]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    CSS
    Oracle
    백준 티어
    BOJ
    일상
    html
    javascript
    Java
    코딩 테스트
    Database
    Project
    백준
    spring
    jsp
    자바스크립트
    꿀팁
    Error Note
    SQL
    코딩
    프로그래밍
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[Project] 조사모아(Josa-moa) 오픈소스 개발일기(2) [Builder Pattern 적용, Package 구조 잡기 등]
상단으로

티스토리툴바