GithubHelp home page GithubHelp logo

kernel360_oxix's Introduction

kernel360_oxix's People

Contributors

oxix97 avatar

Stargazers

 avatar

Watchers

 avatar

kernel360_oxix's Issues

안녕하세요. 반갑습니다. 작성하느라 고생 많으셨습니다.

과제 하느라 고생 많으셨습니다. 문서에 프로그램 순서도를 작성한 것이 인상적입니다.
다른 프로젝트에서도 해당 방법을 활용해 보세요.

Command 열거형에서 문자열 상수를 관리하는 것이 인상적입니다.
이렇게 상수로 관리하면 다국어 적용 등에 용이합니다.

FileOutputStream과 InputStream 사용 후에는 해당 자원을 닫아야 합니다. try-with-resources 문법을 사용하면 자원을 자동으로 닫아줍니다. 코드 내에서 outputStream과 is 변수에 대해 적용해 보세요.

현재 ResumeController 클래스 내에서 ResumeView 객체를 직접 생성하고 있습니다. 이렇게 하면 테스트와 유지 관리가 어려워집니다. ResumeView를 생성자를 통해 주입 받거나, setter를 통해 주입받는 방법을 고려해 보는 것이 좋습니다.

idx 필드는 createResumeSheet 메소드와 그 내부에서 호출되는 메소드들 간에 상태를 공유하기 위해 사용되고 있습니다. 그러나 클래스 수준에서 상태를 관리하는 것은 다른 메소드들이 이 필드에 접근하거나 변경할 가능성이 있어 문제가 될 수 있습니다. 가능하면 상태 공유를 지역 변수로 제한하거나 다른 방법으로 구현하는 것이 좋습니다.

writeCareers, writeEducations, writePersonInfo와 같은 메소드들이 유사한 패턴을 가지고 있습니다. 이러한 중복 코드를 줄이기 위해 공통 로직을 별도의 메소드로 분리하거나 다른 방법으로 리팩토링하는 것이 좋습니다.

setPhotoSize 메소드의 이름은 사진 크기를 설정한다는 것을 의미하는데, 실제로는 앵커의 크기와 위치를 설정하고 있습니다. 메소드의 기능과 이름이 일치하도록 이름을 수정하는 것이 좋습니다. 계속 화이팅 입니다 :)

코드 수정

[Model]

  • enum 클래스 필드 추가
  • Object -> List 변환 위한 메서드 추가

Controller

  • idx 필드로 엑셀 row의 전역적인 상태 관리 -> 각 메서드에서 관리
  • 메서드를 통해 View 객체 사용 -> 생성자로 주입받는 형태로 변경
  • 유사한 패턴을 가지고 있던 writeCareers, writeEducations, writePersonInfo 처럼 도메인 별로 나눈 형식 -> writeHeader, writeCells로 기능별로 분리
  • setPhotoSize -> setAnchor로 기능에 맞는 메서드명 재정의

좀 더 보완한다면?

  • exception 처리

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.