IT&Programming 9

NonUniqueResultException

JPA로 프로젝트 진행 중에 다음과 같은 에러메세지를 만났다. NonUniqueResultException: Query did not return a unique result: 3 results were return. "Non Unique Result" 유니크하지 않는 결과에 대한 에러다. 전체적으로 읽어보니 query 값이 하나만 반환돼야 하는데 3개가 반환 되는 것 아니겠나? 밥공기를 하나만 들고 갔는데 세 공기 분량을 주면 당연히 하나에 전부 못 담는다. (고봉밥 제외) public String getRice(String name){ Rice r = riceRepository.findByRiceName(name); return r.name; } 위와 같은 코드를 작성했다고 하자. 찾고자 하는 밥 종..

504 Gateway time out

프로젝트를 배포하고 테스트 도중에 브라우저 콘솔에서 위 제목과 같은 에러가 발생하였다. 이 에러가 왜 발생했을까.. 504 Gateway Time-out 오류는 클라이언트가 보낸 요청에 대해 제한 시간 내에 업스트림에서 응답을 보내지 않아 게이트웨이와 업스트림(upstream) 사이의 연결이 끊긴 것이다. 나는 GCP의 load balancer를 사용했지만 nginx가 더 널리 사용돼서 위 사진에서는 nginx가 사용됐다. GCP의 load balancer와 nginx 모두 게이트웨이의 역할을 맡고 있다. 그리고 downstream으로도 불린다. 반대로 tomcat 등의 was는 upstream으로 불린다. 해결 만약 위와 같은 504를 맞닥뜨렸다면 해결 방법은 두 가지다. 응답 제한 시간을 늘린다. 제..

GDSC Solution Challenge 일지 - 3

마지막에 마지막까지 정말 열심히 했다고 생각한다. 처음 하는 프로젝트라 더 정이 갔고 더 보면 볼수록 수정사항이 많았다. 그래도 성공적으로 끝내서 더할 나위 없이 기쁘다. 여러 우여곡절이 있었지만 가장 기억에 남는 건 로그인 구현과 식단 생성 알고리즘 같다. 세션 방식의 로그인을 구현하고 배포까지 했는데 '로그인이 안되었다..' 분명 로컬에서는 잘 돌아갔는데 뭐가 문제였던 것일까. 나중에 정리해서 올리겠다만 결론적으로 https 통신이 필요했던 것이다..! 디버깅에 여타 api 구현 작업까지 동시에 이뤄져서 어쩔 수 없이 미뤄뒀는데 이때 딱 문제가 생긴 것이다. 이 문제를 해결한 이후로 프론트엔드 팀원의 '안되는데요?'를 듣고도 차분하게 대응할 수 있게 됐다. 정말 해보면 별거 아니다. 직접 부딪혀봐야 ..

GDSC Solution Challenge 일지 - 2

CORS 정책에 며칠 발목이 잡혔지만 해결했다. 왜 CORS에서 발목이 잡혔나에 대한 이유와 해결과정은 나중에 한꺼번에 정리해서 올릴 때 같이 해야겠다. 메인 기능 구현에 들어가기 전에 ERD 설계를 했다. 말 그대로 모든 게 처음이라 이것도 어떻게 해야 할지 고민이 많았다. 데이터베이스 강의를 들었지만 막상 설계를 들어갈 때는 다시 공부해야 했다. 정규화를 한다고 한 건데 불만족스러운 부분이 많지만 이 또한 경험이다. 다음에는 더 보강해서 할 수 있다고 생각한다! 무엇보다도 정말 재밌다. 강의로 들었을 땐 지루한 부분이 많았지만 역시 실전에 들어가서 팀원과 의미 있다고 생각하는 결과물을 만드니 뿌듯하다. 역시 백문이 불여일견! 백 번 듣는 것보다 한 번 해(보)는 게 낫다! 이제 ERD 설계대로 각종 ..

GDSC Solution Challenge 일지 -1

한동안 바빴었기에 이제야 글을 쓴다.. 공부하랴, 뒤늦게 개발자 준비하랴, 연애하랴, 운동하랴 너무 바쁘다.. 글을 쓰는 지금도 바쁘지 않은 것은 아니지만 방학이기도 하고, 내가 해온 기록들을 짧게나마 착실히 남기고 싶다. 작년에 교내 GDSC에 합류해서 활동하다가 이번에 Solution Challenge에 참여하게 됐다! 팀빌딩이 완전 자유였던 데다 지인이 거의 없어서 어찌해야 할지 몰랐지만 다행히 자기 PR을 좋게 봐준 학우가 러브콜을 보내주었다. ㅠㅠ 그렇게 백엔드 2명, 프론트엔드 1명, PM 1명인 4인조가 정해졌다. 팀원 3명 모두 재능있고, 성격 좋고, 열정 넘치는 친구들이다. 함께 해서 영광이고 이번 기회에 서로 많은 것을 얻어가고 좋은 인연으로 남았으면 좋겠다! 각설하고, 솔챌 이야기를 ..

글쓰기 머신이 필요하다면? Freewriter, Pomera

Portable Smart Typewriter 디지털 타자기 이전에 집필에 사용할 프로그램을 소개한 적이 있다. 이번에는 전자기기를 소개할 것이다. 상술할 전자기기는 글쓰기에 특화돼 있다. 더 정확히 표현하자면 '들고 다니며 장소와 시간의 제약을 최소화하여 글쓰기에 집중할 수 있도록 돕는 기기'다. 언제 어디서든 아이디어가 떠올랐다면 이 기기를 꺼내고 시간 단위로 집중할 수 있다. 이들은 과거 오직 글쓰는 것만이 목적이었던 워드프로세서에서 발전을 거듭해 현재에 이르러서 오늘날의 마니악하면서 심플한 모습을 갖추었다. 그럼 각설하고, 글쓰기 머신에 대한 소개와 기기 그 자체에 대한 주관적 견해를 곁들여서 적어보겠다. 포메라 DM250 포메라 DM250은 일본의 전자 문구류 회사인 킹짐에서 만든 디지털 메모 ..

javax.servlet.http.httpservlet, determined from the dynamic web module facet version (2.5), was not found on the java build path

spring tool suite4를 쓰는 과정에서 이와 같은 에러가 발생하였다. 툴을 4.18로 업데이트하거나 property에서 Dynamic Web facet version 2.5와 java build path를 손보면 된다. 업데이트는 넘어가고, 후자만 다루겠다. Add library를 클릭한다. Next 클릭 tomcat을 깔아야 한다. 가장 최신 버전 10.1.1을 누르고 finish 이후 apply를 누른다. Project facet으로 넘어간다. 사진에서는 아니지만 오류메세지에 뜬 내용대로라면 dynamic web module은 2.5로 되어 있을 것이다. 이것을 5.0으로 바꾼다. 여기까지 마치고 잠시 후면 오류는 사라져있다.

LTE(셀룰러) 스마트워치는 효율적인가?

비효율성 어쩌다 보니 해외 유튜브에서 애플워치 울트라만으로 하루 보내기 같은 영상을 보았다. 문득 이런 생각이 들었다. 정말 LTE 통신이 가능한 스마트워치가 보조용 이외에 유의미할까? 몇 달 전, 스마트폰을 바꾸면서 갤럭시워치 5와 버즈 프로2를 함께 구매했다. 여러 용도를 고민해보고 구매한 거라 후회는 없다. 하지만 내 생각만큼 효율적이지 않다는 것을 곧 깨달았다. 블루투스 모델을 들고 있다는 것은 대부분의 경우, 스마트폰도 항상 소지하고 다닌다. 알림을 빠르게 확인해야 하는 상황 말고는, 전화를 주고받는 상황이나, 메세지를 주고 받는 상황에서 '압도적으로' 스마트폰이 편리하다. 폰과 워치는 포지션이나 폼팩터에서 차이를 보이지만 '용도'에서 동일함을 보인다면 이야기가 달라진다. 그렇다고 LTE 모델에..

글쓰기 프로그램(작가용) 간단한 소개 - manuskript, QuollWriter, smartedit writer, PlumeCreator, WaveMaker

소설 작업을 한다면 자료가 많은 스크리브너 같은 프로그램을 사용하려는 사람들이 있을 것이다. 허나 가벼운 마음으로 구매하기에는 한 번쯤은 고민해보게 되고, 체험판을 하고도 아직 확신이 서지 않거나, 자신이 쓰고 싶거나 써야 하거나 쓸 기능이 확실히 있는데도 필요 이상으로 갖춘, 다 쓰지도 못하는 기능을 위해 이를 구매하기를 망설이는 사람도 있을 것이다. 그리하여 필자는 한 번 생각해보거나 대체제로 쓸 수 있는 프로그램을 소개하려 한다. 필자 개인의 의견도 포함했으므로 도움이 되길 바란다. Manuskript https://www.theologeek.ch/manuskript/ 매뉴스크립트는 앞으로 소개할 소프트웨어 중에서 '그나마' 한글화가 꽤 되어 있다. 파일 가져오기, 내보내기, 방해금지 모드(집중 모..

728x90
반응형