전체 글316 [springboot] @Value와 싱글톤 공유 문제로부터의 교훈 문제 상황개발 중 GPT 추천 기능에서 @Value("${openai.prompt}")로 주입된 프롬프트 템플릿 문자열을 기반으로 사용자의 MBTI, 선택지, 목표 등을 바꿔서 요청하는 로직을 만들었다.처음에는 문제없이 잘 동작했다고 생각했지만, 서버 배포 후 이전 사용자의 값이 그대로 반영되어 응답되는 버그가 발생했다. 프론트엔드 : 어 .. 전 분명 토마토와 각종 과일중에 먹을걸 추천해달라했는데 산과 바다중에 고민해요..?! 문제의 코드//... 생략@Servicepublic class RecommendService { @Value("${openai.prompt}") private String promptTemplate;//... 생략 private String put.. 2025. 6. 2. [클린코드] 추상화와 클린코드? 추상화(abstraction): 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것 (컴퓨터과학 - 위키백과) 소프트웨어 공학을 공부하다 보면 소프트 웨어 = 프로그램 + 문서 프로그램 = 소스코드와 데이터이 내용부터 배우고 시작하였다그리고 나서 OOP에 대해서 배우고 추상화라는 개념도 자세하게 배우는데 추상화가 클린코드에 어떤 부분에서 고려를 중점으로 해야할지 고민을 해본 적이 없었다. 추상화를 한다는것은 즉 핵심적인 내역을 간추려 냈다는 것인데좋은 코드를 짜기위해서는 남들이 봐서도 그 간추린 내용을 유추할 수 있어야 한다. 아! 추상화를 하는게 중요한것보다 추상화를 잘 하는것이 제일 중요하다는 것을 느꼈다. 그래서 클린코드 입장에서 추상화를 한번 적어보았다. 예시를 .. 2025. 5. 27. 오랜만에 가벼운 WIL(Work I Learn & diary) - 2024년 4월 2주차 (4.07~4.13) 가벼운 WIL(Work I Learn & diary) 매주 회사에서 성장해 나아가는 모습을 일기형식으로 적어보기나중에 제가 이랬던 저를 보면서 흐뭇해 하기를 바라면서 :) Event신규기능설계로직분석 및 구상틀 작성기술부채에 대한 경험이번주 동안에 느낀점한동안 신규기능을 많이 만들어 내고 시간날때마다 만든 기능과 각종 기능들을 검수도 진행하였다.그러면서 FP(기능점수)를 간이법으로 산출하기도 하였고 한동안 바쁜 나날 에 몸이 좀 힘들어서 쭈욱 한번 휴식을 취했다.힘들어도 달리면 언젠간 못달리니까 적당히 달리기위해서 몸을 회복하는 시간을 가졌다. 이번엔 기술부채에 대해서 경험이다.예전에 일어난 고질적인 하나의 문제가 있었다고한다.그 문제는 정말 사소로운 문제였고 그냥 간단하게 Y , N가 쓸때없이 추가된 .. 2025. 4. 14. [Docker] Mysql 컨테이너 한글이 입력이 안되는 경우 증상Docker Mysql 컨테이너를 실행하여 mysql은 잘 실행이 되고 있었으나insert를 위해서 한글을 입력하고자 할때Mysql 콘솔에서 한글이 입력되지 않는 경우였습니다.INSERT INTO test(user_name) VALUES('춘식이');을 입력을 하거나 복사 붙여넣기를 하면INSERT INTO test(user_name) VALUES('');로 되는 상황이 발생하였습니다.해결 순차적 정리1. 컨테이너 내부 접속실행 중인 컨테이너 확인docker ps docker exec -it container_name bashmysql에 접속후 클라이언트 문자셋확인mysql> SHOW VARIABLES LIKE 'character\_set\_%';+--------------------------+.. 2025. 3. 26. 가벼운 WIL(Work I Learn & diary) - 2024년 2월 2주차 (2.03~2.09) 가벼운 WIL(Work I Learn & diary) 매주 회사에서 성장해 나아가는 모습을 일기형식으로 적어보기나중에 제가 이랬던 저를 보면서 흐뭇해 하기를 바라면서 :) Event통합테스트이번주 동안에 느낀점이번주는 통합테스트를 준비하였고통합테스트를 진행했다 해당과정속에서 에러가 무었이 났고 어떤점이 부족한지를 분석하였고나도 데이터를 준비하고 직접 테스트를 해보는과정으로 실제 사용자를 경험하듯이 해봤고사소한 버그를 발견해서 수정을 하였다 통테를 준비를 하는 과정에서 팀원의 실수를 발견했지만 이게 팀이죠~ 하면서 다행히 퇴근전에 발견해서 자연스럽게 통테를 준비하였다.그날 저녁에 고맙다고 밥을 사주셨고 개발스킬도 중요하지만 협업과 팀원간의 유대도 중요하다고 배운 한주였다. 2025. 2. 10. 가벼운 WIL(Work I Learn & diary) - 2024년 1월 4-5주차 (1.20~2.02) 가벼운 WIL(Work I Learn & diary) 매주 회사에서 성장해 나아가는 모습을 일기형식으로 적어보기나중에 제가 이랬던 저를 보면서 흐뭇해 하기를 바라면서 :) Event설날내생일통합테스트준비 - 시나리오사이드프로젝트 기획서 정리 이번주 동안에 느낀점이번주는 정리를 하려고했는데 주말간 시골가는 문제로 한번에 정리를 하기로 마음을 먹었다.우선 4주차에는 통테준비와 신기능을 위한 인터페이스 연결 준비 및 조회 화면을 제작하기 위한 기획/ 페이지 정리를 하였고 간단한 sql을 이용한 조회기능을 살짝 미리 추가를 해놨고- 기존에 버그 및 로직상 문제가 되는 에러를 수정하였다 - SORT조건에 대한 null값이 있어 조건 수정 - 계산 로직에 예외 처리 추가 - 예외처리에 대한 문제로 .. 2025. 2. 3. 가벼운 WIL(Work I Learn & diary) - 2024년 1월 3주차 (1.13~1.19) 가벼운 WIL(Work I Learn & diary) 매주 회사에서 성장해 나아가는 모습을 일기형식으로 적어보기나중에 제가 이랬던 저를 보면서 흐뭇해 하기를 바라면서 :) Event트러블 슈팅이번주 동안에 느낀점너무 바빠서 적는것도 주말에도 너무 바빳다한주간 부서를 옮긴 이후 각종 이슈에 대한 모든 트러블 슈팅을 담당하였다117개의 기능을 다 트러블슈팅을 진행한다...엄..ㅎ.. 근데 로직은 이제 좀 잘보겠다 2025. 1. 21. [JS] Arrow function 화살표 함수(Arrow Function)는 JavaScript에서 간결하게 함수를 작성할 수 있도록 도와주는 문법=> 기호를 사용하여 정의하며, 일반 함수 표현식보다 코드가 짧아지고 가독성이 높아지는 장점// 일반 함수 표현식const add = function(a, b) { return a + b;};// 화살표 함수const add = (a, b) => { return a + b;}; 주요 특징간결한 문법: 코드가 짧고 간결this 바인딩: 화살표 함수는 자신만의 this를 가지지 않으며, 선언된 위치의 this를 상속. 즉, 이러한 특징 때문에 function 키워드를 사용할 때 발생하는 this 관련 문제를 방지암묵적 반환: 함수 본문에 중괄호({})가 없으면 표현식의 결과가 자동으로 .. 2025. 1. 13. 가벼운 WIL(Work I Learn & diary) - 2024년 1월 2주차 (1.05~1.12) 가벼운 WIL(Work I Learn & diary) 매주 회사에서 성장해 나아가는 모습을 일기형식으로 적어보기나중에 제가 이랬던 저를 보면서 흐뭇해 하기를 바라면서 :) Event기존소스 및 로직 분석 리액트 공부이번주 동안에 느낀점이번달은 기존 회사 프레임워크의 새로운 부서를 이동하였기 때문에 로직분석을 실행하였다기존 부서에서 사용하는 코드와 언어가 달라졌기 때문에 그랫다.웹에서 WPF(윈도우프로그래밍)으로 바뀐것이 컸는데 해당 방식의 차이가 좀 있었다. 차이를 분석하고 하다보니 쿼리에서 문제점이 발견하는게 있었고 코드자체에 이슈가 있는것도 있고로직에 대해서 분석하다보니 어느 관점에서 이렇게 설계를 했었는지 개발자간의 차이점을 알게 되었다 또한 개인적으로 리액트를 공부중인데무엇을 만들때 리액트를 이.. 2025. 1. 13. [특강] 일잘하기 위한 커뮤니케이션 커뮤니케이션이란?소통, 전달 등등 다양하게 이야기가 나오지만결국 커뮤니케이션을 하는 이유는 각자의 요구와 욕구를 해결하기 위한 행위이다. 커뮤니케이션을 잘하기 위하는 것은 요구사항만 분석하는 게아니라 그사람의 욕구를 분석해보자요구를 하는 이유는 그사람의 욕구가 있기 때문이다. 상대가 진정으로 원하는 것을 파악해보자. 그럼 상대방이 원하는 것을 파악하는 법은이유분석, 상황분석, 행동분석을 해보자이유분석은 왜 이렇게 말씀하실까? 이유가 뭘까?상황분석은 현재 무슨일이 일어났지? 현재 진척도가 얼마나되었지?행동분석은 표정은 무슨의미일까? 왜이리 떠시지? 그럼 일단 상대방의 이야기를 듣고 나도 생각을 해야한다. 그럼 이제 내생각을 전달을 해야하는데말을 잘해야 받은 상대방도 이해를 할 수 있다.우선 말을 잘하기 위.. 2025. 1. 7. 이전 1 2 3 4 ··· 32 다음 728x90