불필요한 기술을 쓰지 않는 기술
기능을 개발하다보면 미래를 생각하게 된다. 내가 적용한 기술이 향후 사용자가 늘고 트래픽이 증가했을 때 잘 견딜 수 있을지에 대한 염려가 들때가 많다. 보편적으로 아직 불필요한 기술을 적용하여 개발속도를 늦추고 유지보수가 어렵게 하는 것을 기술지향적인 개발이라고 일컫는다. 그리고 그 대척점에 있는 것을 고객지향적인 개발이라고 일컫는데, 이는 가능한...
기능을 개발하다보면 미래를 생각하게 된다. 내가 적용한 기술이 향후 사용자가 늘고 트래픽이 증가했을 때 잘 견딜 수 있을지에 대한 염려가 들때가 많다. 보편적으로 아직 불필요한 기술을 적용하여 개발속도를 늦추고 유지보수가 어렵게 하는 것을 기술지향적인 개발이라고 일컫는다. 그리고 그 대척점에 있는 것을 고객지향적인 개발이라고 일컫는데, 이는 가능한...
부족한 점 깨닫기 스프링부트는 웹의 기본설정으로 잡히지 못한 예외가 발생하면 요청 헤더에 따라 HTML 또는 JSON 형식으로 예외에 대한 내용을 응답한다. 아마 이런 기본 설정은 API를 디버깅 할때 쉽게 서버측에서 발생한 예외에 대한 내용을 파악할 수 있어서 기본 설정으로 둔 것 같다. 내가 담당하는 API 서버의 코드도 예외가 발생하면 지금까지...
배경: 테스트 코드 부재로 인해 마주친 실무적인 문제 이 글을 쓰는 시점은 입사 후 약 7개월 정도 된 시점이다. 우리 팀은 신입 개발자 두명이 FE, BE를 담당하고 있다. 나는 BE를 담당하고 있다. 내가 솔루션의 담당자가 되었을 때, 물려받은 기존 코드에서는 테스트 코드가 작성되지 않았다. (아예 없던 것은 아니지만 테스트가 작성되고 있다고 말...
상당히 길고 복잡한 기능을 수행하는 로직을 만들었다. 요구사항이 변경되면서 엔티티 설계가 함께 변경되었는데 이때 만든 코드가 스파게티처럼 얽혀 있어 수정이 어려웠다. 이때의 리팩토링 경험을 공유해본다. 접근제한자 public, private으로 추상화레벨을 구분하기 이팩티브자바, 클린코드 등에서 메소드의 추상화 레벨을 통일해야한다고 말한다. ...
임상시험대상자는 시험에 대한 여러 검사를 받게 된다. 검사 결과에 대해서는 CDISK SDTM에서 정하는 기준을 주로 표준처럼 사용한다. 표준이라는 것은 개념을 용어로 묶어두고 정리하는 경우가 많다. 예를 들어 Alpha-1 Acid Glycoprotein 검사는 A1AGLP 라는 코드를 가진다. 검사의 종류란 상당히 많아서 많으면 3천개 정도 되기도...
배경 우리가 담당하는 A서비스는 A서버가 담당한다. A서비스에서는 특정 의학영상(이미지)를 업로드하고 수시로 조회할 수 있는 기능을 제공한다. 각 이미지는 메타정보에 따라서 작은 단위(Sequence)로 묶인 후 더 큰 단위(study)로 묶이게 된다. 이는 영상의학에 관련한 도메인 지식이므로 자세한 설명은 아래의 ChatGPT가 대신해준다. ...
회사에서 일을 하면서 다음과 같은 과제가 생겼다. 특정 json 데이터가 외부로부터 전달된다. 이 데이터를 요구되는 Map구조에 맞추어 가공해야했다. 하나의 객체 안에 담겨야 할 내용이 여러 객체로 분산되어 전달되는 경우 이를 하나로 병합해야했다. 반대로 분리되어야할 정보는 각각 분할해야했다. 키를 변경하거나 값을 변경해야할 경우도 있었다. 문제는...
Page인터페이스를 상속하기 1.0.0 Pageable Interface Pageable 은 스프링 data commons에 포함된 인터페이스다. 구현체로 PageRequest 등이 있다. Pageable을 예시와 같이 컨트롤러의 매개변수로 사용할 경우 URL의 쿼리스트링 중 size, page, sort의 requestParameter와 매칭된다....