프로그래밍 썸네일형 리스트형 MacOS(OSX) 개발을 swift로 해보자. Hello World! 1 MacOS 용 앱을 개발하는 것을 배워보도록 하겠습니다. 생각보다 MacOS를위한 개발은 매우 쉽습니다.몇개의 게시물을 통해 MacOS에서 실행되는 앱을 개발하는 방법을 배우겠습니다. 먼저 간단한 MacOS를 위한 첫 번째 앱을 만들어 봅시다. 앱을 제작하기 위해서 macOS를 개발하는 데 필요한 도구를 얻는 것으로 시작해봅시다. 그리고, 간단한 "Hello, World!" 응용 프로그램을 만드는 동안 Xcode 둘러보기, 응용 프로그램 실행 방법, 코드 편집, UI 디자인 및 코드 디버깅을 수행합니다. 이 시리즈의 파트 2 & 3에서는 더 복잡한 에그 타이머 응용 프로그램을 만들고 응용 프로그램 시작 방법부터 UI 구성, 사용자 상호 작용 처리까지 MacOS 응용 프로그램을 구성하는 구성 요소에 대해 .. 더보기 mantis와 intellij로 하는 이슈 관리 개발중인 프로그램의 버그 및 수정사항 관리를 위해서 이슈 트래커를 사용하는 것은 매우 유용합니다. 이슈를 등록하고 이슈를 해결할 담당자를 지정, 각 이슈의 우선순위에 맞게 수정하고 그 해결유무도 쉽게 확인할 수도 있습니다. 웹서비스의 기능이 점점 추가되고 개발된 기능에서 버그와 개발해야 혼재되어 있을때 리스트를 정리하여 순차적으로 우선순위에 맞게 눈앞에 맡겨진 일에 집중할 수도 있고, 긴급하게 수정해야 버그가 발생해 그것을 해결하고 다시 원래 작업으로 돌아갈때, 해당 작업의 내용 및 해결단계를 확인할 수도 있을 것입니다. 또 intellij 등 개발도구를 통해 손쉽게 git의 branch를 생성하고 해당 작업 영역을 오갈수 있습니다. 각 branch를 task로 생성하여 intellij에서는 task를 .. 더보기 프로그래밍과 음악의 결합 이 블로그의 이름이 모던웹과 음악이 된 이유가 있는데, 새롭게 준비한 웹서비스에서 이 음악이론과 코드진행을 데이터화하고 그 의미를 파악하고 사용자가 알고 싶어하고 알아야 할 정보로 재포장을 해야 했기 때문이다. 작업에는 생각보다 오랜 시간이 걸렸다. 작업을 하는 중에 이 악보라는 데이터는 문자 정보 보다는 이미지에 가깝다는 것을 알게 되었고, 검색과 가공을 위한 데이터 편집, 재가공에 많은 시간이 소요되었다. 시간은 걸렸지만 어느 정도 해야할 작업들과 가능한 아이디어의 윤곽이 그려졌고, 이 결과물이 생각보다 음악을 공부하는 입장에서 상당한 도움이 될 것이라는 결론을 내리게 되었다. 그 과정에서 고려하고 고민하게 된, 그리고 선택된 작업들에 대한 대략적인 윤곽을 여기에 서술하고자 한다. 1. 악보 표기는 .. 더보기 ubuntu에서 springboot 내장 tomcat과 apache 연동 spring boot에 내장된 was인 tomcat은 웹서버로서 잘 작동하기는 하지만더 나은 성능과 기능을 위해 apache를 웹서버로 사용하는게 더 낫다. 게시물에서 사용된 ubuntu 버전은 18.04이지만, 아주 오래된 버전이 아닌 이상 동일한 순서로 연동이 가능할 것으로 생각된다. 우선 apache를 사용하기 위해 설치를 한다. sudo apt-get updatesudo apt-get install apache2 설치된 apache 웹서버의 작동 상태를 확인한다. 웹서비스를 실행한다.sudo service apache2 start 80포트가 잘 열려있는지 확인한다.sudo netstat -ntlp | grep apache2tcp6 0 0 :::80 방화벽의 80포트를 개방한다.sudo ufw al.. 더보기 jpa entity와 관련된 문제들 Cascade, fetch @ManyToMany(cascade={CascadeType.ALL}, fetch = FetchType.EAGER)데이터가 변경될때 변경의 방법에 대한 범위의 제한을 cascade를 통해 설정가능하다.다음과 같은 cascade 옵션이 존재한다.CascadeType.RESIST – 엔티티를 생성하고, 연관 엔티티를 추가하였을 때 persist() 를 수행하면 연관 엔티티도 함께 persist()가 수행된다. 만약 연관 엔티티가 DB에 등록된 키값을 가지고 있다면 detached entity passed to persist Exception이 발생한다.CascadeType.MERGE – 트랜잭션이 종료되고 detach 상태에서 연관 엔티티를 추가하거나 변경된 이후에 부모 엔티티가 m.. 더보기 vultr, cloudflare 웹서비스 오픈하기 vultr 웹서비스를 오픈하기 위해 꽤 많은 초청 크레딧을 모아놨던 conoha에 오랜만에 접속했더니 계정이 삭제되어 있었다. 한참동안 상황을 이해하지 못하고 비밀번호 찾기부터 시작해서 수많은 방법을 동원하여 접속을 하기 위해 노력했다. 이전에도 conoha는 접속관련 문제가 좀 있었기에 내일이면 되겠지 하고 기다려도 봤지만 접속이 되지 않는 것에 계정이 삭제된 것을 깨달았다. 그 상황을 겪고 나니 conoha는 다시는 쓰고 싶지 않은 생각에 적당한 cloud를 찾던 중 - 나무위키를 뒤적거리던 중 - vultr을 알게 된다. 저렴한 가격에 나쁘지 않아보이는 서비스, 신뢰성 등을 생각해서 선택하게 되었다. 가까운 tokyo를 사용하면 속도도 그닥 나쁘지 않고, 가격은 2.5달러부터 시작이지만 2.5달러 .. 더보기 spring boot를 사용한 웹서비스 제작기 spring boot를 사용한 웹서비스 제작하기 이번에 Jambox 사이트를 개발하는 중에 경험한 정보들을 남겨 놓습니다. spring boot를 사용한 것은 딱히 큰 이유가 아니라 java에 익숙하기 때문이며, node.js를 사용해보기 위해 수년 노력 해봤으나 javascript 사용의 불편함을 견딜수가 없었기 때문이기도 하다. 한가지 언어로 모두 다 할수 있기 때문에 편리한 것처럼 수많은 수식어를 붙여 설명할 수많은 글을 보았지만 직접 경험해본 바로는 callback지옥, 비동기의 불편함 등의 괴로움을 참아내기 힘들었다. 그렇다고 django, ruby on rails 등을 사용하여 간단한 사이트를 제작한 경험은 있으나 편리함 뒤에 숨겨진 자유롭지 못한 제약이 걸렸으며, 그렇다고 php나 다른 서버.. 더보기 vue.js를 사용하여 쉽고 빠른 뷰 제작하기 Vue.js 사용하기 spring boot를 사용하여 새로운 웹서비스를 제작 중 ReponseBody나 model attribute로 넘긴 데이터를 view와 연동시키는 중에 좀 더 편한 방법이 없을까 하고 찾아보다 vue.js를 알게 되었다. angular와 react도 사용해 본 경험은 있지만 딱히 spa로 제작하는 것도 아니고, 간단하게 몇 개의 element와 필요한 부분에서만 연동하면 될 뿐,양방향 바인딩이 유지되어야 한다거나 state 히스토리가 필요한 것도 아니었기 때문에 좀 더 작고 가볍게 연동할 수 있고, 사전지식이 조금 덜 필요한 프레임워크는 없을까 하는 고민과 angular와 react를 한동안 사용하지 않았기에 새로운 버전에 대한 두려움도 있었다. 확인은 하지 않았지만 과거의 경험으.. 더보기 이전 1 다음