분류 전체보기
SSH 파일 업로드 시 pem 키 혹은 패스워드 입력하기
SSH 파일 업로드 시 pem 키 혹은 패스워드 입력하기
2021.02.20SSH를 통해 서버로 파일 업로드 시, 패스워드를 입력해야하는 경우가 있다. 해당 예제는 macOS 기반으로 작성되었다. 설치 macOS용 패키지 관리자 homebrew 설치 (이미 설치되어 있다면 스킵) $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" sshpass 다운로드 $ brew install hudochenkov/sshpass/sshpass 혹은 $ brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb Homebrew는 기본적으로 sshpass..
IntelliJ에서 마크다운 preview가 보이지 않을 때
IntelliJ에서 마크다운 preview가 보이지 않을 때
2021.02.09종종 인텔리제이에서 부분적으로 markdown 미리보기가 되지 않는 현상이 있다. 모두 그런 게 아니라 부분부분 특정 파일만 그런데 원인은 모르겠다. 간단하게 시도해볼 수 있는 방법으로는 Markdown plugin을 재시작하는 것이다. Preference 메뉴 (command+,) plugin에서 Markdown 검색 disable enable IntelliJ restart Intellij Support : Mardown plugin doesn't show preview
JPA 자식 엔티티가 변경되지 않을 때 (feat. cascade)
JPA 자식 엔티티가 변경되지 않을 때 (feat. cascade)
2021.02.05cascade는 특정 Entity의 영속성 상태가 변경되었을 때 이를 연관된 Entity에도 전파시킬 지 선택하는 옵션이다. 특정 Entity에 @ElementCollecion으로 관리되던 하위 컬렉션이 @Entity로 변경되었는데 cascade 옵션이 함께 설정하지 않았다. 컬렉션은 기본적으로 부모 Entity와 한 쌍으로 움직이기 때문에 cascade 옵션이 없어도 부모 Entity와 함께 저장/삭제된다. (cascade 옵션을 ALL로 준 것 처럼 작동함) 하지만 Entity 간의 연관 관계에서는 기본적으로는 아무런 상태도 전이시키지 않기 때문에 연관을 설정할 때 cascade 옵션에 대해 고려해야한다. @ElementCollecion으로 관리할 때에는 부모 Entity를 통해 자식 테이블에 저장이..
JPA @ElementCollection
JPA @ElementCollection
2021.01.29RDB에는 컬렉션과 같은 형태의 데이터를 컬럼에 저장할 수 없기 때문에, 별도의 테이블을 생성하여 컬렉션을 관리해야한다. 이때 컬렉션 객체임을 JPA에게 알려주는 어노테이션이 @ElementCollection이다. JPA는 @Entity가 아닌 Basic Type이나 Embeddable Class로 정의된 컬렉션을 테이블로 생성하며 One-To-Many 관계를 다룬다. 아래에는 스터디그룹과 멤버 구성을 관리하는 Entity이다. 스터디 그룹에 대해 멤버는 1:N 관계로 구성되며, 멤버는 다양한 스터디 그룹에 참여할 수 있다. StudyGroup entity : Entity, 스터디 그룹을 관리 id : PK, 스터디 그룹을 대표하는 값 topicTags : Basic Collection, 스터디 주제 G..
[JPA Error] IllegalStateException: Multiple representations of the same entity
[JPA Error] IllegalStateException: Multiple representations of the same entity
2021.01.201:N 관계의 부모 Entity와 자식 Entity를 동시에 저장할 때 에러가 발생했다. error : java.lang.IllegalStateException: Multiple representations of the same entity 에러 메시지를 토대로 원인을 찾아보니 다음과 같은 Hibernate 이슈글을 발견했다. 원문은 하단 참고문서에 링크해두었다. Hibernate throws IllegalStateException when merging entity 'x' if it has references to 2 detached entities 'y1' and 'y2' (obtained from different sessions), and y1 and y..
SI개발자가 스타트업으로 이직한 이유
SI개발자가 스타트업으로 이직한 이유
2021.01.05이 글을 쓰는 이유는 다른 사람들은 나와 같은 선택을 해야할 때 너무 고생하지 않고 결정하길 바라는 마음이다. 오랫동안 SI에서 개발하던 나는 막연하게 스타트업으로 이직을 해보고 싶었다. 기술적으로 성장하고 싶고, 실제로 사람들이 사용하는 서비스를 개발하고 싶었다는 게 첫번째 이유였다. 하지만 그 이유 하나로 이직을 하기에는, 지금 SI 개발자로서 누리고 있는 것들을 포기하는 게 너무 아쉬웠다. 그렇게 몇 달을 고민했지만 사실 어떻게 고민해야하는 지도 몰랐고, 뭘 고민해야하는 지, 누구에게 조언을 구해야 하는 지도 몰랐다. 그냥 인터넷만 뒤적거리면서 남들 생각을 들어보려고 허우적거렸다. 이것도 좋아보이고, 저것도 좋아보이고, 이걸 포기하기도 아쉽고, 저것도 놓치고 싶지 않고... 시간을 허비한 끝에 스타..
2020년 회고
2020년 회고
2021.01.01새해를 맞이했다. 지난 2020년은 나에게 새로움이 가득한 한 해였다.특히 SI에서 스타트업으로 필드(?)를 바꾸면서 많은 변화가 일어났다. 목차 SI에서 스타트업으로 이직 스타트업에서의 나 운동하자! 💪👀💪 2020년 나의 공부방법, 블로그 2021년 새해 목표 (1) SI에서 스타트업으로 이직 이직 결심 "그래, 떠나자!" 이번 해에 나에게 있어 가장 큰 변화는 필드(?)를 변경한 것이다. 자세한 내용은 아래 글에 참고하길 바란다. prohannah.tistory.com/130 SI개발자가 스타트업으로 이직한 이유 SI vs 스타트업을 비교하기 전에... 일단 내가 경험한 SI는 특정 대기업에 엮인 거대한 단일 생태계라서, 내 이야기를 보고 'SI는 다 이렇구나.'라고 일반화하지는 않았으면 좋겠다. ..
[강의 리뷰] React Native, Expo, Geolocation로 간단한 날씨앱 만들기
[강의 리뷰] React Native, Expo, Geolocation로 간단한 날씨앱 만들기
2020.12.30노마드코더에서 진행하는 무료 강의인 React Native로 날씨앱 만들기를 수강하였다. (하단 링크 참조) 토이 프로젝트로 어플을 만들고 싶었는데, 앱에 대한 사전 지식이 많이 없다보니 간단하게(?) 맛만 보기에 적당한 강의라고 판단했다. 내용은 짧지만 재미있었고, React Native로 개발을 어떻게 하는 지 맛만 보여준다. 심화 내용이나 좀 더 다양한 기능에 대한 강의는 유료로 구매할 수 있다. 총 강의 시간은 120분이고, 짧은 강의 여러 개로 엮여져 있어서 시간 분배하기 좋았다. 어찌되었든 큰 시간이 소요되지 않는 강의라 한번에 처음부터 끝까지 들었고, 이것저것 꾸미면서 따라하다 보니 3~4시간 정도 걸렸다. [후기] React Native : Javascript로 IOS와 안드로이드 앱을 동..
[Firebase] 프로젝트 생성 및 SDK 추가 간단 가이드
[Firebase] 프로젝트 생성 및 SDK 추가 간단 가이드
2020.12.24Firebase 프로젝트 생성 및 앱 등록 (ex: Web) Web 프로젝트(ex: React)에 Firebase SDK 추가 Firebase를 앱에 추가하는 방법은 4가지가 있으며, 그 중 npm을 통해 SDK 설치함 https://firebase.google.com/docs/web/setup?authuser=0#using-module-bundlers // 프로젝트의 루트 디렉토리로 이동 $ npm install --save firebase Firebase CLI 설치 (나중에 해도 됨) Firebase 호스팅으로 사이트를 호스팅하려면 Firebase CLI(명령줄 도구)가 필요함 npm install -g firebase-tools Firebase 호스팅에 배포 (나중에 해도 됨) // 지금 배포하려..
Firebase, Amplify 언제 써야할까?
Firebase, Amplify 언제 써야할까?
2020.12.23요약 : 빠르고 저렴하게 프로토타입 제작할 때 쓴다. 기능 장점 인증 10분 백엔드 작업 없이 DB 저장 웬만한 모든 기능들을 쉽게 제작할 수 있음(인증, 업로드, Push, CRUD 등) ⇒ 아이디어를 빠른 시간 내에 제작해서 시도해볼 수 있음 단점 GCP/AWS 플랫폼에 강한 종속 (섬세한 컨트롤 X, 추후 분리도 어려움) 각 플랫폼의 서버와 DB를 빌려쓰는 것이기 때문에 내가 소유하고 있지 않음 ⇒ 실제 프로젝트에는 부적합 가격 Firebase : https://firebase.google.com/pricing Amplify : https://aws.amazon.com/ko/amplify/pricing/ 장점 초기 비용(?)이 거의 들지 않는다. 인증(무료, 전화인증은 만 건까지 무료), Cloud..
[컨퍼런스 리뷰] DEVIEW 2020 - 오픈 소스 활동을 시작하기 위한 작은 가이드
[컨퍼런스 리뷰] DEVIEW 2020 - 오픈 소스 활동을 시작하기 위한 작은 가이드
2020.12.212020 DEVIEW에서 진행한 발표 내용 중 '오픈 소스 활동을 시작하기 위한 작은 가이드'를 듣고 내용을 정리했다. 회의가 있어서 사실 강의 초반은 듣지 못하고 4번 목차, 기여할 거리 찾기 부터 들었다^^; 발표자는 NAVER의 고상우 님이다. 목차 안내 : deview.kr/2020/sessions/366 오픈 소스 활동을 시작하기 위한 작은 가이드 발표자 : 고상우 deview.kr 목차1. 오픈 소스 활동 오픈 소스 구성원 오픈 소스와 커뮤니티 오픈 소스 활동 오픈 소스 활동 사이클 2. 프로젝트 찾기 내가 잘 알고 좋아하는 프로젝트 왜 기여하려고 하는가 나와 궁합이 맞는 프로젝트 유명한 프로젝트 공개되어있다고 기여하기 좋은 것은 아니다 기여하기 좋은 프로젝트의 신호 큐레이팅 서비스 오픈 소스..
Git stash 일부 파일만 적용하기
Git stash 일부 파일만 적용하기
2020.12.16작업을 하다보니 모든 작업 현황이 아니라, 일부 파일만 잠시 보관해두었다가 개발해야하는 경우가 생겼다. 이런것도 되려나? 하고 찾아보다가 알게 되었다. git stash push -m "메시지" 파일절대경로 파일절대경로 파일절대경로 혹은 git stash push -m "메시지" 파일절대경로/* '*' 같은 키워드도 적용되더라 :)