Skip to content

Latest commit

 

History

History
51 lines (34 loc) · 2.39 KB

README.md

File metadata and controls

51 lines (34 loc) · 2.39 KB

go-hellogsm

소개

go-hellogsm 은 www.hellogsm.kr (광주소프트웨어마이스터고 입학지원시스템)의 batch jobs 를 모아둔 레포지토리 입니다.

개발자 가이드

go-hellogsm 실행하기

cd ~/cmd
go build main.go
./main -profile local -jobs firstEvaluationJob

파라미터 소개

  • profile: local, stage, prod 로 3가지를 지원하며 하나만 입력한다.
  • jobs: firstEvaluationJob, secondEvaluationJob, departmentAssignmentJob 3가지를 지원하며 복수 입력 가능하다.
    • 복수 입력 예시: -jobs firstEvaluationJob,secondEvaluationJob,fake 혹여나 잘못 입력했다고 하더라도(fake) 무시되니 괜찮다.

panic 사용과 error 리턴의 usecase (go-hellogsm 이하 process)

  • process가 즉시 셧다운 되어야 한다면 panic 을 사용한다.
  • 그 외 일반적인 예외(에러) 케이스에는 error 를 사용한다.

ApplicationProperties 추가하기

  • SpringBoot 와 같이 application-{env}.yml 파일을 해석할 수 있도록 구현 되어 있다.
    • 현재는 MySQL 정보만 필요하기 때문에 ~/internal/application_properties.go 에 MysqlProperties 만 선언 돼 있다.
    • 이런식으로 application-{env}.yml 에서 추가적인 정보 해석이 필요한 경우 적절하게 추가하면 된다.

DB 사용하기

  • process 가 실제 비즈니스 로직을 처리하기 전에 MyDB 라는 전역 변수를 초기화 하기 때문에 안심하고 MyDB 를 호출해 쓰면 된다.
  • gorm 을 사용한다. gorm에 ORM 특화 기능은 제하고 MyBatis(SQL mapper) 스타일로 사용한다. (ORM 을 쓰고 싶었던게 아님.)
  • error 발생시 transaction rollback 처리 가이드는 TBD...

코딩 컨벤션

해당 레포지토리는 아래 레퍼런스들을 참고해 개발합니다.