내 Excel이 신났어요 약 일주일 동안 PoI 라이브러리를 통해 Excel을 출력하는 작업을 해봤다. 내용만 기재하려다가 셀 생성/병합 등의 레이아웃 설정부터 Text의 폰트 스타일 등도 Java와 Spring-Poi 라이브러리로 다뤄봤다. 별문제 없이 요구사항을 다 구현하나 싶었던 때에, DB 내의 데이터들을 Query로 개행 압축시킨 뒤 내용을 기재한 Excel파일을 열어보니, 내 파일은 미친 듯이 신나있었다. (계약서 내용 출처: https://blog.naver.com/aetangu/50164949002) 갖고 있는 계약서로 예를 들면 저런 식으로, 노래를 부르기엔 당황스러운 내용에 음표가 개행마다 붙어있었다 문제 추적하기 1. XSSFRichFont에 Font를 바꾸니까 나타났다 XSSFFon..
전에도 언급했던 2023년의 내 첫 프로젝트, MirrorMe가 있다. [회고] SmartMirror 프로젝트 개발 회고 지난 6주간 SSAF생활을 하면서 IOT프로젝트를 했다. IOT에 관심있냐고 하면 아니었다. 관련된 경험이라고는 고등학교때 이름만 IOT(그때 프로듀스 101이 유행해서.. )인 동아리를 개설했고 이게 다른 guti-coding.tistory.com 내가 이 프로젝트에서 무엇을 했나 PPT 자료들을 뜯어보고 혼자서 구조를 그려보니 아래와 같았다. 더 많은 기능이 있었지만, Backend에 있던 기능들 위주로 관계를 정립해봤다. 전체적인 구조는 위와 같았고, 최대한 깨끗하게 표시하려고 했으나 어렵다 들여다보고 있으니 가장 큰 구조부터 '왜 그렇게 한 걸까...?'... 의문이 들었다. ..
📣 9월 19일, Java 21이 출시됐대 🐶: 귤아 JAVA 21 나왔대! 🍊: 으응? 나 이제껏 11버전밖에 안 써봤는데 뭐가 달라졌어? 🐶: 좀 큰 변화가 있나 봐, 가상스레드가 핵심이라던데. 이 프로젝트를 시작했던 10월 17일 기준으로 Backend팀에서는 출시한 지 얼마 안 된, Java 21 RC(정식 출시 후보버전)를 프로젝트에 적용하고자 하였다. 세 번의 프로젝트를 진행하며 SpringBoot 기반 백엔드 포지션을 주로 맡았기에 이번에는 신버전을 적용하며 이전과는 다른 경험의 차별점을 가질 수 있을까가 가장 먼저 든 생각이었다. 그렇게 기획 단계에서 Java 21 기능 핵심 요약 영상들을 찾아보고서 오랜만에 OS 개념도 복기하며 영상 몇 개를 재밌게 보았다. (🔗: YOUTUBE - 가상..
🧚🏿♀️: 이번에도 IOT 프로젝트를 하셨다구요! 어떤 프로젝트예요? 🍊 한 문장으로 하면, 자율주행 Device를 통해 신축 건물의 시공 결함을 파악하는 서비스를 위한 플랫폼 크게 개발 부분을 세 가지로 나누면 다음과 같아요. 1️⃣ ROS상에서 자율주행 및 결함 탐지 AI가 탑재된 Device개발 2️⃣ 해당 Device를 조작할 수 있는 (가상의 하자 탐지 서비스 직원이 이용하는) Application 3️⃣ 해당 서비스를 신청/결제할 수 있는 (고객이 이용하는) Web 🧚🏿♀️: 어떤 부분을 맡았나요? 🍊 팀 구성에 따라 Device팀이 ROS관련 AI 알고리즘을 전면 담당했고 Front팀은 React기반 고객 전용 Web 화면과 직원 전용 Application 화면 구현을 맡았어요. 그리고 ..
IntelliJ 2019버전을 쓰다보니 java버전과 Springboot버전에 제약이 있었다. 이번에 intellij 2023.2 버전을 재설치한 김에, Springboot 3.x를 쓰면 어떨까 싶어 2.x버전과 비교문서를 찾았다 1️⃣ SpringBoot 2.x 2018.03 출시 Java javax패키지 (ft. Java EE) 로그형식: yyyy-MM-dd HH:mm:ss.SSS 2️⃣ SpringBoot 3.x 2023.11 출시 JDK 17 미만 버전 미지원 jakarta패키지 (ft. Jakarta EE) Springfox Swagger 미지원 로그형식: (ISO-8601 표준) yyyy-MM-dd'T'HH:mm:ss.SSSXXX 3️⃣2 -> 3 주의사항 ✔ JDK를 17로 업그레이드 하기 ..
아래는 프로젝트 기획 단계에서 걸렸던, 데이터 설계의 일부 요약 타임랩스에 대하여 테이블을 분리해야하는가? 1️⃣ 문제사항 현재 프로젝트에 존재하는 '타임랩스' 개념은 진행/완료 상태에 따라 속성이 달리한다 진행 중인 타임랩스는 마이페이지에서만 조회되며, 완료된 타임랩스는 메인화면의 전체 피드로 조회된다 만약 진행/완료 상태에 구분없이 한 테이블에 관리한다면, 전체 데이터를 끌고와 완료된 전체피드만 쿼리해내는 것에 비용이 클 것같다 2️⃣ 초기 해결방안 🐶: 타입랩스를 테이블 분리시키자 잔행중인 타임랩스는 'Challenges'로, 완료된 타임랩스는 'Feed'로 따로 관리한다면 별도의 쿼리 과정을 줄일 수 있다. 🍊: 그치만... 이게.. 최선일까? 오빠? 🐶: 같이 알아보까? 3️⃣ FeedBack ..