2022/01 30

[SpringBoot] @PathVariable vs @RequestParam

둘 중 뭐가 더 나은지는 사실 성능상 상관없다. 상황에 따라 더 좋은 것을 쓰면 되는데 아주 미묘한 차이가 있다. (사실 이전까지는 뭐 별반 차이없을거라 생각해서 그냥 무작정 @RequestParam 만 잔뜩 써대고 있었다. ) 1. @ParhVariable은 어떠한 Resource를 식별하고 싶다고 하면 그때 사용하면 되는 것이고 2. @RequestParam은 정렬이나 필터링을 할때 사용하면 좋다. 즉 2번의 예시를 들자면 url에 파라미터로 특정 조건에 충족하는 사람만 조회해서 가져오고 싶다면 다음과 같이 쓰면 된다. localhost:8080/test/condition=good 이런 식으로 컨디션이 좋은 사람들만 골라서 가져오겠다는 식으로 말이다. 이럴때 @RequestParam을 쓰면 좋다. 이..

[기술서적] readITzine #3 - 앞으로 계속 나아가기

오랜만에 필요한 기술서적이 있어서 두권을 구입하게 되었는데 사은품 선택 란에 리드잇 zine 3호 라는게 눈에 띄었다. 예전에도 한번 사은품 목록에 올라왔던 적이 있었는데 원래 잡다한 것을 굳이 골라서 받아놓는 것을 좋아하는 성격이 아니라서 굳이 추가하진 않았다. 그런데 이번에 다른 사은품으로 올라온 노트가 마음에 들어서 추가할까 하다가 리드잇이 눈에 걸려서 궁금해서 추가해서 읽어보게 되었다. 결론부터 말하자면 정말 재밌다. 인터넷에 서치하다보면 꼭 기술에 관련된 디테일한 내용이 아니더라도 그와 연관있는 재미난 이야기를 해주시는 분들이 많이 계시다. 그런 분들의 글을 읽으면서 좋아요와 구독을 꾹꾹 누르고 다니는데 이 매거진은 그런 분들을 모두 모아서 한번에 만날 수 있는 매거진이다. 각기 다양한 분야에서..

[SpringBoot] org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL

프로젝트를 수정하는 도중 새로운 jpa 엔티티를 추가해서 진행하고 있었는데 ddl-auto: create으로 테이블을 생성해보니 org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL 이라는 에러가 발생했다. 분명 h2 디비도 잘 돌아가고 있었는데 왜 ddl 구문에서 에러가 발생했을까? 원인은 예약어에 있었다. 밑에 사진을 보면 컬럼 중에 like 라는 컬럼이 있다. 즉 like 는 이미 mysql에 존재하는 예약어이다. 즉 이 컬럼명을 likes로 바꾸던지 prefer로 바꾸던지 해서 문제를 해결하는 것이 좋다. 즉 프로그래밍 언어에서 int를 변수명으로 선언하는 것과 비슷한 경우랄까? 혹은 assert 를 변수명으로 ..

프로젝트속에서 발견한 것

요즘 백엔드 프로젝트를 진행하면서 꽤나 코딩에 열중하며 지내고 있다. 정말 많은 것들을 배운 시간이라는 생각이 들었다. 거의 마무리가 되었고(?) 이제 최종적으로 어느정도 테스트를 거치고 ec2에 배포하면 끝이다. 물론 이후에도 수정해야할 사항들이 많다. 다만 최소한의 핵심기능들이 돌아가게끔이라도 만들어놓고 이후에 추가적으로 코드를 리팩토링하고 추가 요구사항들을 추가할 일이 남아있다. 사실 완성본이라기 보다는 프로토타입에 가깝다. 후순위로 미뤄둔 기능들은 아직 구현도 하지 않았기 때문이다. 애초에 팀의 목표 자체가 빠른 출시였기 때문에 사실 다른 무엇보다도 빠르게 개발해서 일단 결과물을 만들어낸다는 점에 우선순위를 두었다. 이렇게 코딩에 열중한게 정말 오랜만이라는 생각이 들었다. 그러면서 문득 내가 지속..

개발 정보 2022.01.19

[Git] .gitignore 가 적용되지 않을때

왜 언제가부터인가 .gitignore가 적용되지 않는다는 사실을 발견했다. 현재 프로젝트를 진행하면서 yml 파일을 제외시키려고 사용하고 있었는데 갑자기 안된다. 브랜치들을 살펴보니 그리 오래된것 같지는 않았고 커밋 서너번 전부터 이런 현상이 나타났던 것 같다. 해결법은 간단하다. git의 캐시문제라고 한다. git bash 에서 아래와 같은 명령어를 친다. (마지막에 점 찍는거 빼먹으지 마시구) 들고있던 캐시 전부 비워주자. git rm -r --cached . 그 다음은 하던대로 똑같이 진행해주면 된다. git add -A git commit -m "removed git cach" 뭐 이런 식으로 하던대로 진행되면 된다.

인프라/Git 2022.01.18

[Rust] 러스트를 배워봅시다! - Rust language 간단 후기1 - 재밌다!

며칠전에 러스트를 배워보고 싶다는 생각에 무작정 rust doc을 찾아서 읽었다. 공식 doc이 있는데 정말 상세하게 나와있는 doc이라는 생각이 들었고 읽는데 많은 시간이 걸리지도 않았다. 현재는 IO프로젝트까지 읽고 해당 grep 프로젝트 코드를 작성한 상태이다. 역시나 모든 언어에 존재하는 변수와 데이터 타입, 함수, 제어문들에 대해 배웠는데 한가지 흥미로운 점은 다른 언어에서는 볼 수 없었던 개념이 언어 전반에 녹아있다는 생각이었다. 예전부터 러스트를 관심갖고 지켜보면서 러스트로 만든 프로젝트 사이트들을 돌아다니면서 시간날때 꼭 배워봐야겠다는 생각을 하면서 어떻게 하면 속도와 메모리 안전성을 둘다 가져갈 수 있는지에 대해 많이 궁금했었다. 그리고 그와 관련된 내용으로 소유권과 참조자, 빌림에 대해..

Rust lang 2022.01.15

[Dev] powershell과 cmd의 차이

환경변수 세팅을 할 일이 있어서 cmd로 설정하는데 자꾸만 $env 가 먹히질 않아서 좀더 살펴보니powershell에서 하라는 안내를 읽지 못한 탓이었다. 그런데 아무리봐도 powershell이나 cmd 나 너무 비슷하고 명령어도 똑같이 작동하는데 둘이 다른건가...? 라고 생각했는데 알고보니 다른거였다.  즉 cmd보다 powershell이 훨씬 더 많은 명령어를 동작시킨다. 왜냐면 cmd가 개발되기 전에는 powershell이 없었고 powershell은 그 이후에 만들어진 신규 프롬프트이기 때문이다.  그래서 보통 악성 프로그램의 경우에 powershell 을 노리고 접근하는 경우가 더 많다고 한다. 할 수 있는게 더 많으니까...  그러니 응용 프로그램이 powershell의 권한을 요청한다면 ..

개발 정보 2022.01.15

[Rust] 러스트를 배워봅시다.

주변에서 러스트 꼭 써보라는 말이 있어서 차근 차근 공식 문서를 읽어보기로 했다. 공식 문서가 아주 잘 정리된 케이스여서 이 문서만 따라 읽으면 얼추 개념이 잡힌다는 얘기를 들었다. 예전부터 go 와 rust 중 뭘 공부해볼까 생각하고 있었는데 이참에 rust를 한번 해보면 재밌을 것 같다. 요즘 시간도 많아서 넉넉해서 잠시나마 시간내서 문서를 읽어볼 순 있을 것 같다. 두근 두근 아래 링크가 rust 공식 document 이다. https://doc.rust-lang.org/book/ 아래는 번역본이다. 참고로 번역 퀄리티가 정말 좋다. 감사합니다. https://rinthel.github.io/rust-lang-book-ko/ 들어가기에 앞서 - The Rust Programming Language ..

Rust lang 2022.01.12
반응형