'개발 > git' 카테고리의 다른 글
git 특정 파일만 원격 저장소의 최신 상태로 설정하기 (0) | 2024.06.08 |
---|---|
git commit 되돌리기(pull 안하고 commit&push 했을 때 오류 대처법) (0) | 2024.06.08 |
git pull 은 되는데 push 는 안될 때 (0) | 2024.06.05 |
git 특정 파일만 원격 저장소의 최신 상태로 설정하기 (0) | 2024.06.08 |
---|---|
git commit 되돌리기(pull 안하고 commit&push 했을 때 오류 대처법) (0) | 2024.06.08 |
git pull 은 되는데 push 는 안될 때 (0) | 2024.06.05 |
개발자로 일을 하다보면 거의 대부분의 경우에 MariaDB, PostgreSQL 같은 RDB 를 사용하게 됩니다.
그러나 일을 하다보면 빅데이터 분야와 관련된 일을 할 때 가끔씩 접하게 되는것이 NoSQL 입니다.
엑셀처럼 직관적으로 눈에 보이고 머리속에 그려지는 RDB 와 달리 NoSQL 은 개념을 들어도 머릿속에 어떻게 사용하는지 개념이 한번에 떠오르지 않는데요
그래서 스스로도 공부를 해 보고자 NoSQL 에 대해서 이번 포스팅을 작성하게 되었습니다.
NoSQL은 전통적인 **관계형 데이터베이스 관리 시스템(RDBMS)** 과는 다른 방식으로 데이터를 저장하고 관리하는 비관계형(non-relational) 데이터베이스를 의미합니다. NoSQL은 "Not Only SQL"의 약자로, 단순히 SQL을 사용하지 않는다는 의미뿐만 아니라, 관계형 데이터베이스 이외의 다양한 데이터 모델을 지원한다는 뜻을 내포하고 있습니다.
다음은 이런 NoSQL 들이 실제 개발환경에서 어떻게 쓰이는지 예시를 보도록 하겠습니다.
예시: 소셜 미디어 애플리케이션
활용 방식: 소셜 미디어는 사용자의 프로필, 게시물, 댓글, 좋아요 등을 저장해야 하는데, MongoDB의 비정형 구조는 이러한 데이터를 유연하게 저장하고 조회할 수 있습니다. 특히, 사용자의 프로필이 매우 다양하고 자주 업데이트되는 경우, MongoDB는 스키마를 변경하지 않고도 이를 반영할 수 있어 개발에 유리합니다.
예시: 세션 관리 및 캐싱 시스템
활용 방식: 사용자가 웹사이트에 로그인하면, 세션 정보가 Redis에 저장되고, 이를 통해 웹 애플리케이션이 빠르게 인증 정보를 확인하고 세션을 유지할 수 있습니다. Redis는 특히 짧은 시간 동안만 필요한 데이터를 관리할 때 유용합니다. 또한, Redis는 웹 페이지 캐싱이나 자주 조회되는 데이터를 메모리에 저장해 성능을 높이는 데도 사용됩니다.
예시: IoT(사물인터넷) 데이터 처리
활용 방식: IoT 장치가 실시간으로 온도, 습도, 위치 등의 데이터를 Cassandra에 저장합니다. Cassandra는 대규모 데이터 분산 처리가 가능하므로, 수백만 대의 IoT 장치에서 수집되는 방대한 양의 데이터를 손쉽게 저장하고 분석할 수 있습니다. 예를 들어, 스마트 홈 시스템에서 여러 센서들이 실시간 데이터를 지속적으로 Cassandra에 저장하고, 이를 분석해 자동화된 홈 환경을 구축할 수 있습니다.
예시: 추천 시스템 및 소셜 네트워크 분석
활용 방식: 소셜 네트워크에서 사용자 간의 친구 관계, 팔로우 관계, 좋아요 등의 데이터를 기반으로 추천 시스템을 구축할 수 있습니다. 예를 들어, Alice가 Bob과 친구라면, Neo4j의 그래프 데이터베이스를 통해 Bob이 친구인 다른 사람들도 Alice에게 추천할 수 있습니다. 그래프 구조는 관계형 데이터베이스로 구현하기 어려운 복잡한 관계 데이터를 쉽게 처리할 수 있습니다.
NoSQL 데이터베이스는 데이터의 구조적 유연성, 대규모 확장성, 빠른 성능 등을 제공해 다양한 용도에 맞게 활용됩니다.
자신의 자바 버전에 맞는 mariadb jdbc 확인하는 법 (0) | 2023.07.24 |
---|---|
오라클DB Oracle 문자열에 구분자를 여러 행으로 분리하기 (0) | 2023.05.12 |
MariaDB 통계구할 때 Group By 안쓰고 여러개의 조건별 통계 구하기 (0) | 2022.05.20 |
오라클 시퀀스를 사용하지 않고 자동 증가하는 id 값 만들기 (0) | 2021.06.23 |
오라클 시작일 종료일 사이의 연, 월, 주, 일 추출 쿼리 (1) | 2021.06.11 |
수십년간 윈도우 PC 만 사용하다가 맥OS를 처음 사용하게 되면
키보드부터 마우스, 트랙패드, 기본제공 기능들까지 너무 다른게 많습니다.
그래서 편하게 맥북을 사용하려면 초기세팅이 좀 필요한데요
제가 맥북을 1년정도 쓰고 새 맥미니를 들이게 되면서
앞으로 새 맥OS 를 쓸 때마다 혹은 초기화 후 다시 처음부터 세팅해야할 때
저에게 필요했던 앱들을 한번 정리해보려 합니다.
★★★ 필필수 설치 앱
1. karabiner
맥북을 처음 쓰면 제일 당황스러운 것 중 하나가 바로 한영 전환일 겁니다.
윈도우에서 스페이스바 바로 우측의 Alt(맥의 right_command) 키로 한영전환하는 삶을 수십년을 살다가
맥OS의 Caps Lock 키 혹은 Control + 스페이스바 로 한영전환을 하게되면 여간 불편한게 아닙니다.
그래서 우측 Alt(right_command) 키로 한영전환을 매핑해주는 앱이 바로 karabiner 입니다.
설치방법은 홈페이지에 들어가서
https://karabiner-elements.pqrs.org
Download 버튼을 눌러줍니다.
그리고 다운받아진 dmg 파일을 실행하여 pkg 파일을 실행합니다.
설치파일은 휴지통으로 이동해버리셔도 됩니다.
그리고 launchpad 에 가 보면
이렇게 Karabiner-EventViewer 와 Karabiner-Elements
두개의 앱이 설치 되는데 이 중 Karabiner-Elements 를 실행시켜주면
이렇게 권한을 요구하게 되는데 입력 모니터링과 로그인 항목 백그라운드 권한, 드라이버 확장 프로그램 권한 승인을 해준 후 로그인시 열기에도 추가해주면 됩니다.
이렇게 설치와 권한설정이 다 완료 되었으면
이런 화면이 보이게 되는데 내가 현재 연결중인 키보드에만 적용할 수도 있고, 앞으로 연결될 다른 기기들에 모두 적용이 되도록 선택할 수도 있습니다.
스페이스바 우측 Alt 키에 한영 전환을 설정하는 방법은
우선 Simple Modifications 에서 나는 모든 키보드에 동일 적용할 것이기 때문에 For all devices 를 선택해주고
매핑할 키인 right_command 를 앞쪽에 선택해주고
오른쪽에는 가상의 function 키인 f18을 매핑해줍니다.
그러면 이렇게 설정이되는데
이제 좌측 상단의 사과모양 아이콘을 클릭하여 시스템 설정을 열어주고
키보드 -> 키보드 단축키를 누르면 아래 화면이 나오는데
그리고 입력메뉴에서에서 다음 소스 선택에 할당된 단축키를 더블클릭 하고 스페이스바 오른쪽의 Alt 키를 눌러주면 f18 로 인식이 되게 됩니다.
그리고 완료를 누르면 이제 한영 전환을 alt 키로 할 수 있게 됩니다!
2. Rectangle
윈도우를 쓸 때에는 실행중인 창을 좌,우 로 모니터의 반만 사용하고 싶을 때,
그러니까 예를들어 모니터의 반을 나누어서 왼쪽에는 인터넷 창을 열어놓고 오른쪽에는 엑셀을 띄워놓고 싶을 때
윈도우키를 누른 채 왼쪽 오른쪽 화살표를 눌러주면 좌우로 반만 사용하게 되는 기능이 윈도우 자체 기능으로 내장이 되어 있습니다.
맥에서는 창의 왼쪽 위의 초록색 화살표에 커서를 올려놓고 있으면 좌우 분할 버튼이 나오거나
창을 드래그 하여 왼쪽이나 오른쪽에 가져가면 화면 분할을 해주는 split view 기능을 지원하고 있지만
윈도우에서 사용하던 키보드 기능을 이용하고 싶을 때가 있는데
이때 설치하면 좋은 앱이 바로 Rectangle 입니다.
https://rectangleapp.com
설치 방법은 위의 사이트에 들어가서 다운로드 버튼을 눌러 설치 파일을 다운로드 받은 뒤
dmg 파일을 설치해주고 실행시켜주면
이렇게 권한을 요구하게 되는데
이 권한을 설정하려고 하면
이렇게 기존 맥북의 권한과 충돌을 하기 때문에 맥북의 기본 기능을 비활성화 시킬 것인지 묻는데
저는 키보드로 분할 기능을 쓸 일이 더 많을 것 같아서 맥북의 기본기능을 비활성화 시키고 Rectangle 의 기능을 살려줬습니다.
비활성화 된 설정은 이 곳에서 언제든지 되살릴 수 있습니다.
그리고 기본 기능의 사용법은
이렇게 친절하게 설명을 해주는데
저 단축키들을 이용하여 split view 기능을 편리하게 이용할 수 있습니다.
3. Sublime Text
윈도우에선 최근에 기본 메모장(notepad) 도 많이 좋아져서 종료해도 기존에 작성하던 메모가 날아가지 않는 기능이 있는데요
그 기능이 업데이트 되기 전 notepad++ 라는 프로그램은 윈도우 필수 프로그램 중 하나였습니다.
그러나 맥북에서는 notepad++ 만큼 편한 메모앱을 찾지 못했었는데요,
그나마 대체할 수 있는 프로그램이 sublime text 입니다.
https://www.sublimetext.com
여기서 Download for Mac 버튼을 누르시면 별도의 설치과정 없이 바로 실행할 수 있는 실행파일이 다운로드 되는데요
맥중에선 그나마 제일 좋은 text editor 가 아닐까 생각됩니다.
(가끔 donation을 하라는 팝업이 뜨지만 살며시 취소 버튼을 누르시고 사용하시면 됩니다.)
4. Bartender5(유료)
MacOS 는 앱을 실행시키면 상단 바에 실행중인 모든 앱들이 표시되게 됩니다.
그리고 실행중인 앱이 많아질수록 아이콘은 점점 늘어나게 되는데요
이 때 상단바를 보기좋게 정리할 수 있도록 도와주는 앱이 Bartender 5 입니다.
그리고 사실 이 프로그램은 무료 대체 앱들이 있음에도 값을 지불하고 사용하는 아주 드문 유료 앱 중에 하나 인데요,
만약 값을 지불하기 아까우시다면 상단바를 정리해주는 다른 무료 앱(Hidden Bar 가 무료중엔 제일 유명할 것 같군요..)
를 사용하시면 되지만 저는 Bartender 를 아주 유용하게 사용하고 있습니다.
5. Iterm2
리눅스 기반의 OS 에서 터미널은 거의 필수인데요
맥북의 기본 터미널 앱이 있지만
뭔가 이쁘게 사용하고싶다! 하시는 분들은 Iterm2 를 사용하시면 됩니다.
https://iterm2.com
여기서 다운로드 버튼을 누르시면 별도의 설치파일 없이 실행파일이 받아지게 되는데요
Application 으로 옮길거냐는 팝업에 확인을 누르시면 어떤 권한을 요구하게 되는데 권한을 허용하시고 사용하시면 됩니다.
사실 큰 기능이 있는건 아니지만 일단 Oh My Zsh 를 통한 여러가지 테마와 몇가지 추가설정을 통해 터미널을 더욱 재밌게 사용하실 수 있습니다.
6. homebrew
개발자라면 쓰지 않을 수 없는 패키지 관리 앱 입니다.
자바나 파이썬 같은 패키지들을 설치할 때
여러가지 복잡한 설정을 해줘야하는 윈도우와 달리
homebrew 를 이용하시면 쉘스크립트 한줄로 패키지를 설치할 수 있습니다.
설치방법은 homebrew 홈페이지에 들어가시면
https://brew.sh
가운데에 Install Homebrew 에 쉘스크립트가 있는데
이걸 복사하셔서 터미널을 여시고 붙여넣은 뒤 실행만 해주면 끝입니다.
그러면 이렇게
homebrew 가 설치가 되는데 여기서 끝이 아니라
아래쪽에 보시면 나오는 Next step :
에 있는 스크립트까지 실행시켜주어야 설치가 완전히 완료되게 됩니다.
7. scroll reverser
맥북은 터치패드나 매직마우스가 순정이기 때문에 일반적인 마우스와 스크롤이 반대로 되어 있습니다.
물론 시스템 설정에서 스크롤 방향을 바꿔줄 수 있지만
뭔가 스크롤에 가속도? 가 붙는 느낌이라 한번 마우스 스크롤 시 정해진 위치만큼 내려가는 윈도우를 사용하다가 맥의 스크롤을 사용하면 뭔가 어색한데요
그래서 사용하게 된 앱이 scroll reverser 입니다.
https://pilotmoon.com/scrollreverser/
설치는 위의 사이트에서 Download Scroll Reverser 를 누르시기만 하면 되는데요
다운받은 후 실행시키시고 상단바를 보시면 scroll reverser 아이콘이 나타나는데요
아직 권한이 없기 때문에 활성화를 눌러서 권한을 주면 그때부터 제대로 동작하게 됩니다.
활성화를 시키신 뒤 마우스 스크롤을 해 보시면 윈도우에서 스크롤하는것처럼 정해진 만큼 스크롤 되는 편함을 다시 되찾으시게 될 겁니다.
스크롤 휠 을 조절해서 감도를 조절할 수도 있습니다.
여기까지 제가 MacOS 초기 설정 시 필수로 설치하는 앱들에 대해서 소개해 봤는데요
다음 포스팅에서는 필수는 아니지만 그래도 종종 사용할 때가 있어서 설치해두면 좋은 앱들에 대해 소개해드리겠습니다.
지금까지 긴 글 읽어주셔서 감사합니다.
윈도우10 시작메뉴 검색이 안될때 오류 (14) | 2020.02.07 |
---|---|
Visual Studio Code (VSCode) 에서 SVN 사용하기 (Checkout 까지) (0) | 2020.01.19 |
스마트폰 컴퓨터 연결 시 MTP 설치 안되는 오류 (0) | 2019.04.30 |
유튜브 프리미엄 레드 무료로 이용하기? 합법과 불법 사이 유튜브 밴스드 (0) | 2019.03.04 |
블로그 글 쓸 때 자바 코드 첨부하기 (0) | 2019.02.19 |
가끔 git 에서 pull 을 할 때
특정 파일이 충돌이 나서 pull, push 가 모두 안되고 꼬여버리는 상황이 발생합니다.
그럴 때 특정 파일만 원격 저장소의 최신 상태로 설정하는 방법입니다.
1
2
3
4
5
6
7
8
9
10
11
|
# 1. 충돌 파일을 원격 저장소의 최신 상태로 재설정
git checkout --theirs <file>
# 2. 변경 사항 스테이징
git add <file>
# 3. 충돌 해결 커밋
git commit -m "Resolve merge conflict by taking remote changes"
# 4. 다시 pull 시도
git pull
|
cs |
이렇게 하시면 특정 파일을 원격저장소의 최신상태로 설정하여
git 충돌을 없애고 다시 정상적으로 git 을 사용하실 수 있게 됩니다.
git ignore 시키지 않고 로컬에서만 무시하는 방법 (0) | 2024.11.07 |
---|---|
git commit 되돌리기(pull 안하고 commit&push 했을 때 오류 대처법) (0) | 2024.06.08 |
git pull 은 되는데 push 는 안될 때 (0) | 2024.06.05 |
여러 사람이 협업하는 git 에서
수시로 push 가 이루어지다 보니
가끔 pull 을 한 후 commit&push 를 해야하는데
잊어버리고 그냥 commit&push 를 했다가
commit 은 된 상태에서 push 가 안되는 오류가 발생하곤 합니다.
그럴 때 commit 을 되돌리는 방법입니다.
1
|
git reset --soft HEAD^
|
cs |
이렇게 하시면 바로 직전의 commit 을 취소하게 됩니다.
https://jnarin-development-story.tistory.com/158#google_vignette
이 분의 블로그를 참조하였습니다.
git ignore 시키지 않고 로컬에서만 무시하는 방법 (0) | 2024.11.07 |
---|---|
git 특정 파일만 원격 저장소의 최신 상태로 설정하기 (0) | 2024.06.08 |
git pull 은 되는데 push 는 안될 때 (0) | 2024.06.05 |
어느날 잘 되던 git pull 명령어가 갑자기 오류가 나기 시작했습니다.
인터넷에 검색을 해 보면 ssh 인증키 등록을 해야한다는 글이 많아서
이런 글들을 통해서 ssh key 등록을 하고
아래사진처럼 set-url 설정까지 마치니까
위의 사진처럼 pull 은 되는데 push 는 되지 않는 어처구니 없는 상황이 발생합니다.
한참을 인터넷을 뒤진 끝에
위처럼
git remote -v
명령어를 쳐보니까
fetch url 과 push url 이 다르게 설정되있는 것을 확인했습니다.
git remote set-url 명령어 만으로는 push url 까지는 바뀌지 않나봅니다.
그래서 위의 사진처럼 git remote set-url --push origin git@github주소.git
이렇게 등록을 해 주면
git pull 과 push 가 모두 잘 동작하게 됩니다.
git ignore 시키지 않고 로컬에서만 무시하는 방법 (0) | 2024.11.07 |
---|---|
git 특정 파일만 원격 저장소의 최신 상태로 설정하기 (0) | 2024.06.08 |
git commit 되돌리기(pull 안하고 commit&push 했을 때 오류 대처법) (0) | 2024.06.08 |
터미널을 열고
tccutil reset Accessibility com.surteesstudios.Bartender; tccutil reset ScreenCapture com.surteesstudios.Bartender; tccutil reset Accessibility com.surteesstudios.Bartender-setapp; tccutil reset ScreenCapture com.surteesstudios.Bartender-setapp
이 코드를 붙여 넣으시면 됩니다.
출처:
https://www.reddit.com/r/MacOS/comments/yeq8t9/i_cant_start_bartender_app_the_permissions_are/
https://www.macbartender.com/b4blog/macOS-Ventura-Permissions/
개발자들에게 강력한 도움이 되어줄 에디터 <비주얼 스튜디오 코드>! (0) | 2019.04.01 |
---|
m1 맥북에서 nvm 을 사용하여 node 버전을 변경하며 관리하는 방법입니다.
우선 brew 를 통해 nvm 을 설치해 줍니다.
$ brew install nvm
설치후
$ nvm -v
명령어를 실행해 보면
이런 에러메시지가 나는데요
다시 설치 과정중에 나타나는 텍스트들을 보다보면 중간에 이런 부분이 있으실 겁니다.
위 사진의 중간쪽부터 보시면
Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.
You should create NVM's working directory if it doesn't exist:
mkdir ~/.nvm
Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
You can set $NVM_DIR to any location, but leaving it unchanged from
/opt/homebrew/Cellar/nvm/0.39.5 will destroy any nvm-installed Node installations
upon upgrade/reinstall.
이런 문구가 있습니다.
대충 번역기의 도움을 빌려 해석해보면
업스트림에서는 명시적인 관리를 요청했습니다.
Homebrew를 통한 nvm은 지원되지 않으므로 확인해야 합니다.
보고하기 전에 표준 nvm 설치 방법에 대한 문제.
NVM의 작업 디렉터리가 없으면 만들어야 합니다.
mkdir ~/.nvm
쉘 프로필에 다음을 추가하세요. ~/.profile 또는 ~/.zshrc:
NVM_DIR="$HOME/.nvm" 내보내기
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # 그러면 nvm이 로드됩니다.
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # 그러면 nvm이 로드됩니다. bash_completion
$NVM_DIR을 어떤 위치로든 설정할 수 있지만 변경하지 않고 그대로 둡니다.
/opt/homebrew/Cellar/nvm/0.39.5는 nvm이 설치된 모든 노드 설치를 제거합니다.
업그레이드/재설치 시.
정도가 되겠네요.
저의 경우 nvm 작업 디렉터리는 따로 생성해 주지 않아도 잘 동작 하였으나. 쉘 프로필에 다음을 추가하세요 부분은 추가를 하여야 nvm 이 정상 동작했습니다.
$ vi ~/.bash_profile
$ vi ~/.zprofile
$ vi ~/.zshrc
위의 세개 중 하나를 실행시켜 맨 아래쪽에
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
위의 문장을 추가하신 후
위의 추가한 파일을
$ source ~/.bash_profile
$ source ~/.zprofile
$ source ~/.zshrc
를 통해 실행시켜주시면 설치가 완료됩니다.
저같은 경우 처음에 ~/.bash_profile 에 입력하여 설치했으나
vscode 에서는 zsh 를 사용하여 nvm 이 동작하지 않는 문제가 발생한 것을 확인하고
~/.zprofile 에도 추가로 입력해주었습니다.
위의 nvm -v 를 다시 입력해보면
이렇게 설치된 nvm 의 버전이 나오면 설치가 잘 된 겁니다.
$ nvm ls
명령어를 입력해보시면
이런 초기 상태가 나오실 텐데
저는 제가 필요한 버전과 최신 버전을 설치하기 위해
$ nvm install 16.14.0
$ nvm install --lts
이렇게 설치 해준 후 다시 nvm ls 를 입력해보니
이런식으로 현재 설치된 버전과 사용중인 버전들이 나오는 걸 확인할 수 있었습니다.
위의 사진에서 보이는대로 현재 사용중인 버전은 -> 화살표가 가르키는 v18.18.0 버전인데
설치된 16.14.0 버전으로 바꾸고 싶다면
$ nvm use v16.14.0
이런식으로 입력해주시고 다시 nvm ls 를 해보시면
이렇게 사용중인 버전을 바꿔가면서 사용하실 수 있습니다.
자바스크립트 제이쿼리[Javascript, JQuery] 쉼표 사이에 공백 넣기, 혹은 공백 없애기 (0) | 2023.09.04 |
---|---|
Mac 에서 JAVA 버전 변경해가며 사용하기(feat. 1.7 이하 버전) (0) | 2023.07.31 |
Window 에서JAVA 버전 변경해가며 사용하기 (1) | 2023.07.30 |
이클립스 properties 파일이 꺠져서 보일 때 해결 방법 (0) | 2019.03.19 |
이클립스 최신버전 2018-12 버전 이상 마켓플레이스 검색 및 설치 안될때 해결방법 (1) | 2019.03.17 |