본문 바로가기

실무 경험/배운 점 & 회고14

[배운 점 & 회고] 5월 16일 실무를 마치고 느낀 점 고민한 점오늘은 프론트엔드 개발을 지원하기 위해, 카메라 장비로부터 RTSP(Real-Time Streaming Protocol) 영상을 받아 처리한 뒤, React 기반 프론트엔드에 전송하는 기능을 어떻게 구현할지 고민했습니다. 단순한 영상 수신을 넘어서, 중간 서버에서의 안정적인 스트림 처리와 프론트엔드로의 효율적인 전달 방식을 설계하는 것이 핵심 과제였습니다.시도한 내용RTSP 스트리밍 수신: OpenCV를 이용하여 RTSP 영상을 수신하는 테스트 코드를 작성했습니다. 실시간 성능과 프레임 손실 여부를 확인하면서, 영상 수신 안정성 확보에 중점을 두었습니다.중간 서버 설계: FastAPI 또는 Flask 기반의 경량 서버를 두고, 수신한 프레임을 가공하거나 리사이징하여 프론트엔드에 전송할 수 있는 .. 2025. 5. 16.
[배운 점 & 회고] 5월 15일 실무를 마치고 느낀 점 오늘의 회고 – 조용한 하루, 그러나 의미 있는 시간오늘은 특별한 개발 작업 없이 비교적 조용한 하루를 보냈습니다. 눈에 띄는 기능 추가나 수정은 없었지만, 그만큼 지난 작업들을 되돌아보고, 프로젝트의 큰 흐름을 정리할 수 있는 시간이었습니다.작업이 없다는 건 쉬는 시간이 아니라, 더 나은 방향을 고민할 수 있는 기회라는 생각이 들었습니다. 프론트엔드 개발이 진행 중인 지금, 백엔드로서 선행해서 다듬을 수 있는 부분은 무엇인지, 테스트나 문서화, 예외처리 같은 사소하지만 중요한 부분들을 한 번 더 점검해볼 수 있었습니다.‘아무것도 안 한 날’처럼 보일 수 있지만, 개발은 늘 손만 움직이는 게 아니라 머리로도 하는 작업이라는 걸 다시 느꼈습니다. 내일을 더 효율적으로 보내기 위한 준비의 시간이었다고 생각하.. 2025. 5. 15.
[배운 점 & 회고] 5월 14일 실무를 마치고 느낀 점 작업한 내용오늘은 백엔드 개발의 거의 모든 영역에서 작업을 진행했습니다. 프론트엔드 팀의 작업을 기다리는 동안, 외부 업체로부터 전달받은 테스트 시나리오와 요구사항 문서를 검토하며, 그에 따라 백엔드에서 수정이 필요한 부분을 파악하고 개선점을 도출했습니다.고민한 점외부 요구사항 문서를 읽는 과정에서 명확하지 않은 표현이나 기술적으로 구현하기 어려운 요청이 있었습니다. 이런 부분을 어떻게 해석하고 시스템에 반영할지에 대해 혼자 판단하기보다는, 요구사항의 의도를 정확히 파악하려는 시도가 중요하다는 점을 느꼈습니다.느낀 점오늘은 단순히 코드를 작성하는 개발자의 역할을 넘어, 외부 이해관계자와의 요구사항을 해석하고 시스템 설계에 반영하는 역할까지 경험한 하루였습니다. 실무에서는 이런 과정이 반복되며, 코드보다 .. 2025. 5. 14.
[배운 점 & 회고] 5월 13일 실무를 마치고 느낀 점 작업한 내용오늘은 기존 코드에 작성된 주석들을 점검하고, 보다 명확하고 일관성 있는 형태로 수정하는 작업을 진행했습니다. 기능 구현은 없었지만, 주석을 통해 코드의 의도를 더 잘 전달할 수 있도록 하는 것이 목표였습니다고민한 점기존 주석은 너무 포괄적이거나, 당연한 내용을 반복하고 있는 경우가 많아 오히려 가독성을 해치는 경우도 있었습니다. 반면 어떤 부분은 주석이 전혀 없어, 처음 코드를 읽는 사람이 이해하기 어려웠습니다. "어떤 부분에 어떤 깊이로 주석을 달아야 할까?"라는 기준을 스스로 세우는 데 고민이 있었습니다.느낀 점주석은 단순히 코드에 글자를 덧붙이는 것이 아니라, 협업과 유지보수를 위한 소통의 도구라는 점을 다시금 느꼈습니다. 특히 팀원이 없거나, 미래의 '나'에게 설명한다는 생각으로 주석.. 2025. 5. 13.
[배운 점 & 회고] 5월 12일 실무를 마치고 느낀 점 배운 점오늘은 백엔드 서버를 테스트하며 Spring Data JPA의 레포지토리 메서드 네이밍 규칙에 대해 배웠습니다. 처음에는 테이블의 기본키인 Id로 데이터를 조회할 수 있으니, 다른 컬럼과 함께 조건을 걸 때도 findByIdAndUser_UserId처럼 작성하면 될 것이라 생각했습니다.하지만 실제로는 Id만 단독으로 사용하는 경우에만 findById()를 쓰며, 다른 필드와 함께 사용할 경우에는 Id 앞에 엔티티명을 명시해야 한다는 점을 알게 되었습니다. 즉, findBySessionIdAndUser_UserId처럼 명확하게 작성해야 JPA가 올바르게 파싱할 수 있다는 것을 깨달았습니다.어려웠던 점인터페이스 API 주소를 설계하면서 find?name={Name} 형식으로 URL을 작성했는데, 이 .. 2025. 5. 12.
[배운점 & 회고] 5월 09일 실무를 마치고 느낀 점 고민한 것오늘은 프로젝트에서 필요한 환경 데이터를 어떻게 수집할지에 대해 고민했습니다. 드론과 장비를 테스트 시 외부 환경 정보도 함께 기록하기 위해 IoT 뿐만 아니라 기상청 데이터도 함께 수집하려고 했습니다.어려웠던 점기상청의 데이터는 일정 시간 간격으로 업데이트되는데, 실제 확인해보니 3시간 단위로만 제공되고 있었습니다. 현재 프로젝트는 실시간에 가까운 세션 단위의 데이터를 다루기 때문에, 기상청 API의 주기와는 맞지 않는다는 문제가 있었습니다.해결 방법결론적으로는 이번 프로젝트에서는 기상청 데이터를 사용하지 않기로 결정했습니다. 대신, 실시간 환경 데이터를 수집할 수 있는 IoT 센서나, 별도 장비를 통한 수집 가능성을 열어두고 프로젝트를 진행하기로 했습니다.느낀점외부 데이터를 활용할 때는 단순.. 2025. 5. 9.
[배운점 & 회고] 5월 08일 실무를 마치고 느낀 점 고민한 것오늘은 어제 작성하지 못했던 인터페이스 정의서의 JSON 형식을 다시 점검하고, 누락된 인터페이스 기능 몇 가지를 추가로 구현했습니다. 기능적으로는 어제와 크게 다르지 않았지만, 어제 작업하면서 느꼈던 애매한 부분들을 좀 더 명확하게 다듬고자 했습니다.어려웠던 점JSON 형식을 수정하면서, 어떤 구조가 가장 직관적이고 클라이언트에서 파싱하기 쉬운지 판단하는 것이 쉽지 않았습니다. 특히 복잡한 객체가 중첩되는 경우, 필드명을 어떻게 명명할지, 리스트와 객체의 구분은 명확한지 고민이 많았습니다.해결 방법어제보다 여유를 가지고 각 필드의 의미를 다시 검토하면서, 기존 인터페이스 구조와의 일관성을 맞추는 데 집중했습니다. 중복된 표현을 줄이고, 예외 상황에서도 데이터의 구조가 깨지지 않도록 고려하며 J.. 2025. 5. 8.
[배운점 & 회고] 5월 07일 실무를 마치고 느낀 점 고민한 것오늘은 인터페이스 정의서에 명시된 기능들을 실제로 Spring Boot 기반의 백엔드 코드로 구현하는 작업을 진행했습니다. 특히 클라이언트에게 어떤 형식의 데이터를 반환할지, 응답 객체를 어떻게 구성해야 할지에 대해 많은 고민이 있었습니다. 단순한 필드가 아닌 리스트 형식의 데이터를 응답해야 할 경우, JSON 구조를 어떻게 잡아야 할지가 가장 큰 고민거리였습니다.어려웠던 점인터페이스 정의서를 수정하면서 응답 구조를 정의해야 했는데, 리스트 형태의 데이터를 직렬화하여 JSON 응답으로 구성하는 것이 생각보다 쉽지 않았습니다. 어떤 키를 사용할지, 리스트 내부의 객체 구조는 어떻게 구성할지 등 사소해 보이지만 중요한 세부사항에서 막히는 부분이 많았습니다.해결 방법혼자서 해결하려고 고민하기보다, C.. 2025. 5. 7.
[배운점 & 회고] 5월 02일 실무를 마치고 느낀 점 고민한 것인터페이스 정의서 수정을 마친 뒤, 해당 정의서에 맞춰 백엔드 서버 코드를 수정하는 작업을 진행하였습니다.기존에는 코드의 각 줄마다 주석을 달아 기능을 설명하는 방식으로 작성했는데, 전체적으로 코드가 지저분하고 가독성이 떨어지는 문제가 있었습니다. 이러한 문제를 해결하고자, 어떻게 하면 더 깔끔하고 유지보수가 쉬운 코드를 작성할 수 있을지 고민하는 하루를 보냈습니다.어려웠던 점수정된 인터페이스 정의서를 참고하여 코드를 수정하려고 했지만, 기존의 즉흥적인 코드 작성 방식과 반복적인 수정이 쌓이면서 전체 코드가 난잡해졌습니다. 결국 유지보수가 어려울 정도로 복잡해져, 처음부터 코드를 다시 작성해야 하는 상황까지 이르게 되었습니다.해결 방법더 나은 구조의 코드를 작성하기 위해 SOLID 원칙과 주석 .. 2025. 5. 2.