맥 포트 죽이기 맥에서 포트(Port)를 Kill 하기 위해서는 다양한 방법이 있지만 그중에서 가장 많이 쓰고 편리한 방법을 알아보겠습니다. Isof 명령을 통해서 해당 포트를 사용하는 PID를 KILL 명령어로 죽이는 방법을 알아보겠습니다. ▼ lsof(list open files) 명령을 통해서 해당 포트를 사용하는 PID 를 확인합니다. ▼ lsof -i :포트번호 를 입력하면 PID를 확인할 수 있습니다. ▼ kill -9 명령 뒤에 해당 PID 번호를 입력하고 실행합니다. ▼ 다음은 스프링부트에서 테스트 한 결과입니다. 8080 포트가 강제 종료(SIGKILL)된 것을 확인할 수 있습니다.
MySQL 설치 도커에서 컨테이너를 만들기 위해서는 기본적으로 MYSQL_ROOT_PASSWORD 라는 비밀번호 옵션을 주어야 합니다. 뿐만아니라 도커에서 특정 컨테이너를 만들었다가 삭제하면 데이터를 유지할 수 없게되는데 그럼 데이터베이스 역할을 하기 힘들게됩니다. 때문에 사용자 운영체제에 마운트 하거나 볼륨을 고정적으로 만들고 관리해줘야 합니다. ▼ 도커 pull 명령어로 새로운 MySQL 이미지를 받아옵니다. ▼ 도커 run 명령어로 새로운 컨테이너를 만듭니다. --name 옵션으로 이름을 지정하고 -e 옵션을 주어서 비밀번호를 설정합니다. ▼ 만약 볼륨을 설정하고 싶다면 다음과 같이 -v 옵션을 주고 컨테이너를 생성합니다. ▼ 이제 도커의 ps 명령을 통해 mysql 컨테이너가 잘 만들어졌는지 확인..
도커나 데비안 같은 배포판에서 ps 명령이 동작하지 않는 다면 다음과 같이 ps: command not found 라는 에러 구문이 출력됩니다. 만약 ps 명령이 동작하지 않는다면 다음과 같이 procps 를 설치해줘야 합니다. ▼ ps -ef 명령시 에러 발생 e : 커널 프로세스를 제외한 프로세스 전체를 출력한다. f :UID, PID, PPID 등을 함께 표시 (Generates a full listing) ▼ 데비안, 우분투 procps 설치 ▼ centos 에서 procps 설치 https://github.com/tianon/docker-brew-debian/issues/13
맥에는 VS Code, Atom 기타 훌륭한 에디터가 있지만 가끔 리눅스에서 처럼 vim을 사용할 순간이 있습니다. 하지만 처음 리눅스나 맥에 vim을 설치하면 탭이 스페이스 공백으로 설정되어 있지 않고 그냥 탭으로 동작하는 경우가 있습니다. 이때 vimrc 파일을 수정해서 파일을 수정해줍니다. 보통 개인 PC 일 경우에는 복잡한 vimrc 설정을 할 수 있겠지만 단순하게 꼭 필요한 설정만 해보겠습니다. ▼ 이렇게 설정하면 탭으로 인한 스트레스가 없습니다. smartindent : 들여쓰기 설정 tabstop : 탭 4칸 설정 expandtab : 탭 대신 스페이스로 설정 shiftwidth : 자동 들여쓰기를 4칸으로 설정 ▼ 다음은 좀 더 자세한 vimrc 옵션들입니다. . vimrc는 숨김 파일이며..
테이블 뷰에서 아이템을 추가하고 삭제 이동하는 기능은 많이 사용되는 기능입니다. 스위프트 UI에서는 List를 사용해서 보다 간단하게 이 기능을 구현할 수 있습니다. 이를 위해서는 NavigationView를 사용해야 하며 onMove, onDelete 함수를 사용합니다. 또한 토글 성격의 EditButton은 toolbar에 포함되며 macOS는 사용할 수 없고 iOS 전용입니다. ▼ 우선 해당 리스트에 사용될 데이터를 정의합니다. 총 5개의 데이터를 배열로 생성했습니다. ▼ 이제 NavigationView를 생성하고 그 안에 List를 추가합니다. ForEach 구문을 이용해서 배열에 있는 Text를 추가합니다. ▼ 리스트가 추가되었다면 이제 navigationTitle을 추가해주고 toorbar에 ..
IntelliJ는 다른 IDE에 비해서 Github를 연동하기 편리합니다. 만약 iOS 개발을 한다고 하면 Xcode에서 인텔리제이처럼 Github 연동이 별로 좋지 않아 소스트리나 기타 Git 관리 프로그램 또는 터미널에서 직접 Git 명령어를 사용하게 됩니다. 물론 최근에는 많이 좋아져서 그냥 Xcode로도 충분히 해결할 수 있을 것 같긴 합니다. 아무튼 Github에 쉽게 프로젝트를 remote로 설정하고 commit 하는 방법을 알아보겠습니다. ▼ 우선 인텔리제이로 새로운 프로젝트를 하나 만들어줍니다. 기존에 사용하던 프로젝트가 있다면 그 프로젝트에서 진행해도 됩니다. ▼ CMD+SHIFT+A 단축키를 누르면 다음 같이 Actions 검색창이 활성화 됩니다. ▼ 이제 검색창에 git이라고 검색하면..
시뮬레이터 다크모드 아이폰 개발을 하다보면 시뮬레이터를 자주 사용합니다. 최근 iOS 13 이후부터는 다크 모드를 지원하게 되는데요. 개발 초기에는 앱 개발 시 다크 모드를 포함하지 않는 경향이 있었지만 최근에는 다크모드를 지원하는 앱이 많아졌습니다. 일일이 시뮬레이터에 연결해서 다크모드를 테스트하는 것보다는 시뮬레이터에서 테스트하는 편이 훨씬 빠릅니다. 아이폰에서는 제어센터에서 손쉽게 변경할 수 있는데요. 시뮬레이터는 조금 귀찮긴 합니다. 그림 지금부터 시뮬레이터에서 다크 모드로 변경하는 법을 알아보겠습니다. ▼ 다음과 같이 앱 홈화면에 설정 메뉴를 선택합니다. ▼ 설정화면에서 아래쪽으로 스크롤해줍니다. ▼ 시스템 설정 마지막 부분에 개발자 메뉴를 선택합니다. ▼ Developer (개발자) 메뉴에서 ..
H2 데이터베이스 H2 데이터베이스는 관계형 데이터베이스 관리 시스템(DBMS)으로 자바로 작성되었습니다. 임베드 모드로 동작하거나 다른 웹 서버 데이터베이스 관리시스템과 비슷한 구성을 할 수 있도록 클라인트 서버 모드로 구동이 가능합니다. 대부분의 SQL 표준 구문을 지원하며 용량이 매우 적은 저용량 데이터베이스입니다. 스프링 부트환경에서 자주 사용되는 H2 Database를 설치해보고 간단히 데이터를 추가 삭제해보겠습니다. H2 데이터베이스는 별도의 프로그램 없이 웹 브라우저 콘솔을 이용할 수 있어서 편리합니다. https://h2database.com/html/download.html Downloads Downloads Version 2.1.214 (2022-06-13) Windows Install..
DataGrip 데이터 덤프 ▼ 데이터 그립을 이용해서 데이터 dump를 해보겠습니다. 우선 데이터를 복사할 스키마를 선택하고 오른쪽 버튼을 눌러서 메뉴를 불러옵니다. 그리고 Export Data to File 이라는 메뉴를 선택합니다. ▼ Extrator 항목에서 SQL Inserts 를 선택합니다. 이밖에도 CSV 나 JSON 같은 다양한 옵션을 선택할 수 있습니다. 만약 RDBM 데이터를 NOSQL 쪽으로 옮길때 JSON을 사용하면 유용할 것 같습니다. 엑셀을 사용할 때는 CSV를 사용하기 좋겠네요. 그밖에 Add table definition을 선택하면 DDL 구문이 만들어지는 것을 볼 수 있습니다. 오른쪽에 프리뷰는 실제 데이터가 아니라 이렇게 구성된다는 것을 보여주는 예시입니다.
Localizable.string 스위프트UI에서 다국어 처리를 해보도록 하겠습니다. 기존 오브젝티브 C나 Swift에서 하던 방식보다 훨씬 간단하게 처리할 수 있는 장점이 있습니다. 다음과 같이 .enviroment 옵션을 줘서 강제로 locale을 한국(ko)로 지정할 수도 있습니다. 기존 스토리 보드 개발 방식에 비해서 테스트 할 때 굉장히 유리합니다. 기존에는 자간이나 텍스트 사이즈를 및 개행을 확인해보기 위해서 일일히 실행해봐야 했는데 정말 획기적입니다. 다국어 처리하기 ▼ 우선 문자열 파일을 만들기 위해서 새로 파일을 하나 만듭니다. 프로젝트 파일을 오른쪽 버튼을 눌러서 New File... 버튼을 누릅니다. ▼ 아래쪽으로 조금 스크롤 하다보면 String File 을 확인할 수 있습니다. 선..
SwiftGen 이란? 스위프트를 사용해서 앱을 만들다 보면 리소스 관리가 안드로이드에 비해서 훨씬 복잡하고 어렵다는 것을 알 수 있습니다. 어렵다기보다는 관리가 제대로 이루어지지 않아서 실수를 하는 경우도 많고 워낙 IDE 가 훌륭해서(?) 까다로운 경우가 많죠. 하지만 이러한 모든 문제를 알고 만들어진 오픈소스가 있습니다. SwiftGen이라는 오픈소스인데요. 글 쓰는 현재 8천 명이 넘게 즐겨찾기로 추가해놓았습니다. 다음의 항목들을 관리할 수 있게 해 줍니다. Assets Catalogs Colors Core Data Files Fonts Interface Builder files JSON and YAML files Plists Localizable strings https://github.com/..
▼ 전체코드 ▼ LINE 6 : 그냥 텍스트를 노출합니다. ▼ LINE 9~10 : 텍스트의 사이즈를 변경합니다. ▼ LINE 13~14 : 텍스트의 사이즈와 스타일(.bold)을 변경합니다. ▼ LINE 27~28 : 텍스트의 사이즈와 스타일(.thin)을 변경합니다. .bold .semibold .heavy .light .regular .thin .ultraLight .black ▼ LINE 37~38 : 텍스트의 사이즈와 스타일 그리고 디자인을 변경합니다. .default .monospaced .reounded .sefif ▼ LINE 54~55 : 커스텀 텍스트 스타일을 변경합니다. .largeTitle .title .title2 .title3 .headline .subheadline .body ..