본문 바로가기
728x90

전체 글389

잠이 안 오니까 간단한 프로젝트 후기를. 아까 저녁 9시쯤 옥주를 마셨는데 술이 깨서 그런가 잠이 안 온다. 내일 출근인데... 누워있어도 정신이 말똥말똥하다. 아직 프로젝트가 완전히 끝난 건 아니지만 다음주 금요일이면 마무리. 폭풍이 지나고 지금은 간단한 QA 단계라 시간도 좀 남고... 뭐 어쨌든 간단하게 프로젝트 후기나 써볼까 한다. @_@ OCR은 간단한 프로젝트니까 제외하면, CRM은 나의 실무 첫 프로젝트라 더 특별하게 느껴진다. 어쨌든 팀 내 개발자 중에서는 유일하게 기획부터 DB 설계 등 ... 처음부터 끝까지 참여해서 기획 이해도가 제일 높기도 하고. 이번 프로젝트에서 느꼈다. 개발은 결국 협업이다. 개발자로서 커뮤니케이션이 이 얼마나 중요한가... 과장 조금 보태서 5:5 수준 으로 필요하지 않은가 싶다. 개발 5 : 커뮤니.. 2024. 2. 26.
이력서 고쳤따.. 슈퍼짱짱맨 개발자가 되려면 어떻게 해야할까 난 모른다 슈퍼짱짱맨 개발자가 아니어서 그래도 슈퍼짱짱맨들이랑 같이 개발하면 그에 가까이 다가갈 수 있지 않을까 싶어 이력서를 고쳤다. 옥수주조에서 파는 옥수수 막걸리인데 맛이 좋다. 예전에 박람회에서 시음했었는데 맛이 좋아 같이 간 사람들끼리 공구해서 다시 마심. 오늘 이력서는 이 친구와 함께 마무리했다고 볼 수 있다. 다음주(또는 다다음주)면 헤드퍼스트 디자인패턴 다 읽을 거 같은데 그 다음엔 테스트 주도 개발하기를 읽어보려고 한다. 두 권 다 요만큼 개발 같이 하는 개발자님이 추천해주셨는데 아주 잘 읽고 있음! 책에 나오는 전략패턴을 요만큼 프로젝트에 적용해보기도 했다. ^0^/ 뿌듯~ 출퇴근 길에 폰하는 거보다 책읽는 게 훨씬 더 생산적이고 뿌ㅡ듯한 일이.. 2024. 2. 25.
Test ) 간단한 단위 테스트 추가 기존 MEMO:RE 테스트 코드는 무거운 통합 테스트 코드가 포함되어 있어서 빌드 속도가 느렸당 ㅡㅅㅡ 최근 실무에서는 무거운 통합테스트보다는 여러가지의 단위 테스트를 하는 것이 낫다는 정보를 입수해 리팩토링 과정에서 간단한 단위 테스트 코드를 추가해보았다. MemoTest public class MemoTest { private Memo memo; private Long ownerId; private Long otherUserId; @BeforeEach void setUp() { ownerId = 1L; otherUserId = 2L; memo = mock(Memo.class); doNothing().when(memo).checkAuthorizedUser(ownerId); doThrow(new BadR.. 2024. 2. 22.
Java ) 비밀번호를 자체 검증하는 사용자 정의 애노테이션을 만들자! 우리에겐 자동 검증을 해주는 @Valid 라는 좋은 애노테이션이 있다. 보통 String 문자열 같은 경우 @NotBlank 등을 주로 붙이는데, 비밀번호나 핸드폰 번호처럼 정해진 양식이 있는 경우에는 정규식으로 검증해야해서 애노테이션을 여러개 추가해야한다. 그게 귀찮고 + 좀 더 명확하게 처리하고 싶다면 사용자 정의 애노테이션으로 Valid 하자 ! 나는 요로케 회원 가입 등에 사용할 DTO 에서 비밀번호를 검증할 애노테이션을 만들 것이당. @Retention(RetentionPolicy.RUNTIME) @Target({FIELD, PARAMETER}) @Documented @Constraint(validatedBy = PhoneNumberMatcherValidator.class) public @int.. 2024. 2. 6.
refactor ) 예외 상황을 좀 더 멋지게 처리해보자! 사실 이전에 예외 상황을 처리하는 코드를 리팩토링했다. 그러나 1. Checked 예외를 만들면 그에 따른 Handler 를 계속 추가해줘야하는 불편함이 있다. 2. 응답이 200 OK 라면 굳이 Body 에 정상 응답이라는 내용을 담아줄 필요는 없다. 3. 서버에서는 정말 필요한 응답값 (에러 상황에 필요한 메시지와 코드) 만 응답해도 좋겠다. 라는 생각을 토대로, 코드를 수정해보기로 했다! 기존 코드 기존 로그인 컨트롤러 @PostMapping @Operation(summary = "일반 회원 로그인", description = "일반 회원용 로그인") public ResponseEntity login(@RequestBody @Valid LoginDto loginDto) throws UserNotFo.. 2024. 2. 1.
담에 걸렸나 뒷목이 아파서 쓰는 이야기. 나는 불확실한 미래가 싫다. 내가 16가지 성격 유형을 좋아하면서도 맹신하지 않는 이유기도 하다.(나는 INFP다!) 최근 몇 년, 꽤 오랫동안 두루뭉술한 미래 때문에 매일이 불안했다. 아마 직업을 가지지 못했던 탓이겠지? 나는 항상 대체 불가능한 인간이 되고 싶었고 그에 알맞은 기술을 공부해왔다. 음악, 글, 그림.. 글을 제외하고는 전부 흥미를 기반으로 시작했지만 함께 하는 시간이 길어질 수록 “내가 이 일을 평생 지속할 수 있을까?” 하는 생각이 항상 마음 한 켠에서 나를 괴롭혔다. 결국 음악은 그만두었지만 엄마와 낙원상가에서 산 텔레캐스터는 도저히 팔 수가 없어 지금도 방 한 구석에 덩그러니 놓여 있고 가끔 입시를 했던 시절을 떠올리면 지금도 조금 숨이 막힌다. 개인적으로는 첫사랑을 잊지 못한다는.. 2024. 1. 27.
728x90