본문 바로가기
728x90

개발 잡담31

테이블 설계를 잘 했다면 반복자 패턴을 사용하지 않아도 되었을 텐데!^^ 테이블 설계를 잘못했다. 테이블을 필요 이상으로 많이 놔눠서 조회가 너무 힘든 상황이 발생했다.. 직접 회사 코드를 오픈하거나 할 순 없으니 비유를 햄버거로 들어야겠다. 난 햄버거를 좋아하니깐. 그런데 세트 메뉴를 조회하려고 할 때가 문제였다. 세트 메뉴 1번의 3번째 감자튀김 정보를 전부 조회하려면 세트메뉴 1번의 3번째 포장박스를 가져와서 3번째 포장 박스를 알고 있는 감자튀김을 하나하나 포장 박스에 담은 다음 세트 메뉴에 넣어야 하는 것이다.... 근데 세트메뉴를 한 두 개 가져와야 하는 게 아니라 상당히 많았다^^^ 고객 1이 세트 메뉴를 하나만 먹었을 리 없자나? 여러 개 먹었겠지? 게다가 감자튀김이 없는 주문이 있을 수도 있으니까 감튀가 없으면 감튀는 비어 있는 상태로 가져와야한다. ^_^;;.. 2024. 3. 15.
헤드 퍼스트 디자인 패턴 후기 토비의 스프링 인프런 강의를 전부 들었다. 출퇴근 길에 볼 강의나 책이 없었다. 요만큼 같이 개발하시는 개발자님이 추천해주셨다. 가볍게 읽어볼 수 있는 디자인 패턴 서적이라고 하셨다. 그래서......읽어보았다. ^ㅅ^/ 2024-01-27에 구매하고 2024-03-04 에 전부 읽었으니 약 한 달이 좀 넘게 읽었군. 디자인 패턴에 무지했던 나도 한 번쯤 들어봤을 법한, 보편적으로 많이 쓰이는 디자인 패턴을 (어떻게든 독자의 머릿속에 각인시키기 위해)일반적인 딱딱한 설명이 아닌 가벼운 스토리, 대화체, 많은 그림, 여러가지 폰트와 설명을 섞어서 정말 가볍고 알기 쉽게 서술해놨당. 사실 출퇴근길에는(특히 출근) 뇌가 반쯤은 자고 있는 상태ㅐㅐㅐㅐ인데 종종 몇 번이나 같은 부분을 다시 읽기는 해도 꽤 알기 .. 2024. 3. 4.
잠이 안 오니까 간단한 프로젝트 후기를. 아까 저녁 9시쯤 옥주를 마셨는데 술이 깨서 그런가 잠이 안 온다. 내일 출근인데... 누워있어도 정신이 말똥말똥하다. 아직 프로젝트가 완전히 끝난 건 아니지만 다음주 금요일이면 마무리. 폭풍이 지나고 지금은 간단한 QA 단계라 시간도 좀 남고... 뭐 어쨌든 간단하게 프로젝트 후기나 써볼까 한다. @_@ OCR은 간단한 프로젝트니까 제외하면, CRM은 나의 실무 첫 프로젝트라 더 특별하게 느껴진다. 어쨌든 팀 내 개발자 중에서는 유일하게 기획부터 DB 설계 등 ... 처음부터 끝까지 참여해서 기획 이해도가 제일 높기도 하고. 이번 프로젝트에서 느꼈다. 개발은 결국 협업이다. 개발자로서 커뮤니케이션이 이 얼마나 중요한가... 과장 조금 보태서 5:5 수준 으로 필요하지 않은가 싶다. 개발 5 : 커뮤니.. 2024. 2. 26.
좋은 개발자란 무엇일까? 가끔 주변에 얘기한다. 내가 개발을 좋아하고 이를 지속할 수 있는 이유는 개발과 나를 동일시하지 않아도 되어서라고. 음악을 할 때는 음악과 나를 완전히 동일시했기 때문에 음악을 사랑하는 만큼 괴로움도 컸지만 나에게 개발은 이제까지 접하지 못한 새로운 문물 정도로 재밌고 궁금해서 더 알아가고 싶지만 이게 망한다고 내 인생이 망할 것 같진 않은 그런 사이를 유지하고 있다. 그러나 우리가 불타는 사랑을 하지 않고 나와 한 몸이 아님에도, 나는 너를 더 이해하고 알아가고 싶고 최후에는 좋은 개발자가 되고 싶다. 좋은 개발자란 무엇일까. 회사에서 프로젝트를 처음 설계부터 시작하며 데이터베이스 구조, 그러니까 스키마나 테이블 설계를 하고 변수명을 짓고 디렉토리 구조와 엔티티와 클래스 명을 짓고 그걸 직관적으로 변경.. 2024. 1. 15.
Tesseract 를 JAVA 로 사용해본 후기 내겐 임무가 있었다. 그게 무엇이냐? Tesseract 로 값을 읽어와서 DB 에 저장하는 그런 임무. 보통 Tesseract 는 Python 을 이용해 사용한다고 하는데 나는 JAVA 공화국에 사는 자바인이기 때문에(?) 자바를 이용해보았다. 사용은 간단하다. 1. Tesseract 인스턴스를 만든다. - 사용할 언어 (학습시킨 언어 모델) - 언어 모델이 들어있는 파일 경로 설정을 해주고 2. 내 경우는 pdf 파일에 들어 있는 값을 가져오는 것이기 때문에 base64로 오는 파일을 pdf로 렌더링해준 뒤 3. 내가 가져와야할 값이 있는 좌표 부분을 bufferedImage 화 해준다음 4. Tesseract 인스턴스로 OCR 을 해주면 5. String 이 가져와진다. 코드를 직접 가져와서 보여주면.. 2023. 12. 27.
DBMS? JPA? 그래도 쿼리는 알아야 한다. 첫 실수를 했다. DB 테이블에서 기존 유저 PK(UUID) 를 새로운 유저 PK(LONG) 로 변경하고 연결 된 FK 도 전부 바꿔야하는 임무를 맡았다. 나는 그 동안 쿼리를 직접 치기보다는 JPA나 DBMS 를 이용했기 때문에 당연히 쿼리가 아닌 DBMS 로 테이블을 만졌다. -> 여기에서 사고가 났다. 아무 생각 없이 FK 컬럼을 지우고 새 컬럼을 추가한 뒤 FK 설정을 하려고 봤더니 (자세히는 말하기 좀 그러니까 대충 말하면) 유저 데이터와 해당 테이블 데이터의 수가 달라 FK 연결이 불가한 사태가 일어났다. 그렇다. 이 테이블은 이제 유저 테이블과 관계가 사라져버린 것이다.... 직접 쿼리를 쳤다면 롤백을 해서 되돌릴 수 있었을 텐데, DBMS 를 이용했기 때문에 이미 커밋돼버렸고... 심지어.. 2023. 12. 11.
728x90