본문 바로가기

프로그래밍

(5)
@Param 어노테이션, MyBatis와 Spring Data 헷갈리지 말자 org.springframework.data.repository.query.Param와 org.apache.ibatis.annotations.Param 어노테이션은 서로 다른 패키지에 있으며 다른 용도로 사용됩니다. org.springframework.data.repository.query.Param 어노테이션은 스프링 프레임워크에서 제공하는 Spring Data JPA와 같은 ORM(Object Relational Mapping) 프레임워크에서 사용됩니다. 이 어노테이션은 메소드의 파라미터 이름과 쿼리 매개 변수 이름을 매핑하기 위해 사용됩니다. 예를 들어, 다음과 같은 메소드가 있다고 가정해보겠습니다. @Repository public interface UserRepository extends Jpa..
데이터베이스에 파일을 blob으로 저장하는 방법 파일을 서버 파일시스템에 저장할 것인지 데이터베이스에 저장할 것인지는 대개는 고려대상이 아닙니다. 데이터베이스는 서버 용량에 비해 매우 비싼 자원입니다. 그럼에도 불구하고 다양한 비즈니스 요구사항에 따라서 데이터베이스에 파일을 저장하는 것을 고려해보아야 하는 경우도 있습니다. 오늘은 다른 회사로 이직한 후배가, 이직한 회사에서는 데이터베이스에 Blob으로 파일을 저장한다며, 이렇게 만드는 경우도 있냐고 해서 관련 내용을 정리해보았습니다. 제가 취준생일 때 이런식으로 설계를 해본 경험이 있는데 여러모로 많은 번거로움에 비해 큰 이점은 느끼지 못했던 방법이었습니다. 제가 아직 그런 경우가 필요한 비즈니스 프로세스를 경험해보지 못했을 수도 있습니다. 데이터베이스에 파일을 Blob 저장할 때 장단점 파일을 데이..
[RESTful API] DELETE 요청에 Body를 사용하지 않는 이유 썰 API 서버에서 HMAC 검증을 추가했는데, 게 중에는 DELETE 메소드를 사용하는 API도 있다. 그런데 iOS 개발팀에서 DELETE 요청에 payload를 담을 수 없으니 이 API만 payload 대신 query string으로 생성한 HMAC으로 검증해달라는 요청을 했다. 이유를 들어보니, 그쪽 진영에서 가장 흔하게 사용하는 라이브러리에서는 DELETE 요청에 payload를 담을 수 없다는 것이다. 그래서 어차피 DELETE가 적합하지 않았던 API라 POST로 변경을 해주고, 관련 내용을 좀 찾아보았다. REST API URL 설계 지침 우선 API URL을 설계할 때에는 다음과 같은 지침을 따르는 것이 좋다. URL은 명사 형태로 작성하고, 동사는 HTTP Method로 나타낸다. U..
크롬 브라우저 비밀번호 자동완성 방지 (autocomplete 불가 시) 결론부터 크롬에서는 autocomplete 어트리뷰트 대신, 임의의 을 넣어주자. 개요 보통 회원정보에서 내 정보 수정을 할 때는 비밀번호 변경만 따로 있는 경우가 많다. 근데 이번 경우는 같은 폼에 있어서, 비번을 입력하지 않을 경우 수정되지 않는 폼이었다.(비번 재입력 받는 부분도 없음) 어쨌든 별도 입력을 안했는데 비번이 바뀌었다고 해서 확인해보니, 브라우저 자동완성이 문제였다. 사용자 행동 크롬은 사이트에 로그인을 하면 비번을 저장할 것인지 묻는다. 사용자가 여기서 '예'를 선택하여 인증정보를 저장했다. 내 정보 수정 화면에 접속 비밀번호 란에 자동완성 된 비밀번호가 입력되어 있음 '저장'하면 인코딩이 바뀌어 엉뚱한 비번이 들어감 로그인 못함... 해결책 비밀번호 자동완성 방지를 위해 input ..
React 공식 사이트, 문서, 튜토리얼 한글 번역 (React, React.js, React korea) React 한글 사이트 이전 프로젝트에서 Vue를 임베딩 식으로 써보고, Vue로 SPA를 만드는 지금 프로젝트에 들어와 8개월이 흘렀다. 다음 프로젝트는 React와 Vue 중에 고민 중이라서, 내가 먼저 React를 체험해보기로 했다. Vue를 처음 배울 때는 인프런에서 구입해두었던 뷰 강좌를 한번 쭉 듣고 잘 번역된 뷰 공식 문서를 몇 번 읽어보니 어렴풋이 감이 왔다. 물론 개발에 들어가자 아주 간단한 문제조차 난관에 부딪혔지만...어쨌든 잘 번역된 한글 문서는 새로운 기술을 접할 때 가장 큰 허들인 영어의 장벽을 없애주었다. React는 Vue에 비해서 훨씬 큰 커뮤니티를 가지고 있으니까, 당연히 잘 번역된 한글 사이트가 있을 줄 알았다. 그런데 며칠 내내 찾아봐도 없었는데, 아주 우연히 발견하게..