본문 바로가기

분류 전체보기

ngOptions, how to use repeat object in select. Select, option tag를 이용하는 경우, select의 option의 value는 object를 설정할 수 없고, 단순 string 만 가능합니다.이 때문에, ng-model에 object를 설정하여 사용하기에 어려움이 있는데요.이는 현재 angularJs의 spec이 object를 지원하지 않기 때문입니다. 이를 해결하기 위해서는 단순 string을 바인딩 하거나,Select > ng-model, option > ng-repeat 조합을 사용하지 않고,Select > ng-model / ng-options 조합을 사용하면 됩니다. 예를 들어 선택목록의 구조가 [{Id: 1, name: ‘Male’}, {Id: 2, name: ‘Female’}] 이고, name을 display하되 ng-mod.. 더보기
insert or update if exists MS-SQL 를 주로 사용하다가 이번에 오랜만에 Oracle 을 접하니 생각보다 꽤 다른 접근들이 보입니다.쿼리툴(SqlDeveloper)을 포함해서 Oracle 의 철학을 좀 느낄 수 있달까요? :) 제목의 경우는 MS-SQL 에서 IF EXISTS 구문을 이용해서 보통 처리하였는데, Oracle 에서 하는 법을 몰라 잠시 찾아 보았습니다. StackOverFlow의 여러 답변 중, 러닝 커브가 낮고 크게 디메리트가 없는 slavoo의 방법이 괜찮아 보입니다.혹, 더 나은 의견 있으시면 알려주세요.감사합니다. 방법1. insert if not exists2. update. INSERT INTO mytable (id1, t1) SELECT 11, 'x1' FROM DUAL WHERE NOT EXISTS .. 더보기
TechDays2015Korea 후기 .NET 2015 TechDays 2015 Korea 행사에 잘 다녀왔습니다.궂은 날씨였지만, 행사장의 열기는 대단했습니다. 가장 인상적인 었던 점은 MS 라는 거대한 조직이 정말로 기민하게 시장에 대해서 이해하고 대응한다는 점이었습니다.Windows 10 이라는 운영체제는 디바이스를 가리지 않고 녹아들어 통합을 이뤄내고 있으며, Azure 는 VM 뿐만이 아닌 PaaS로써의 역할을 위해서 다양한 서비스들이 빠르게 릴리즈되고 있습니다.(특히, IoT와 관련한 Azure IoT Suite를 이용하면 data collector 만 직접 만들면 누구나 손쉽게 데이터를 수집하고 편하게 모니터링할 수 있었습니다.) 다만, 개발자로서 우려되는 한 가지는 현재의 ASP.NET 4 / MVC 5의 경우는 현 패러다임의 마지막 버전이 될.. 더보기
C# 코딩의 기술 -기본편- 평소 elegant 한 코드를 작성하기 위해서 고민을 많이 하는 편입니다.귀차니스트 개발자로서 코딩 한 줄 덜 하고 싶고, 잘 읽히는 코드를 쓰고 싶습니다. 동료들과 술 한잔 기울일 때는 이런 얘기들을 종종 나누기도 합니다.다만, 이러한 소통이 제한된 사람들 사이에서만 이뤄지다 보니 '우물안의 개구리'는 아닐까 하는 걱정이 늘 마음 한 켠에 있었습니다. 이 책은 다른 사람의 이야기를 들어 볼 수 있는 기회로 생각했습니다.나와 어떻게 다른 생각을 하는 지, 어떤 고급진 기술을 사용하는 지 호기심을 해결할 수 있었습니다. 책의 구성작은 사례들을 기준으로 악마와 천사의 가이드를 받는 주인공이 나옵니다.악마가 단편적인 해결책을 제시하면, 천사가 원론적인 문제 해결책을 제시하면서 각각의 작은 챕터들이 마무리 됩니.. 더보기
Lenovo iSlimBook 100S 개봉기 결국 구매했습니다. ㅎㅎ개봉하면서 찍은 사진들입니다. 이벤트로 받은 32G SD Card입니다. 남자라면 레드!! 레노버 폰트가 조금 바뀐 듯 합니다. 앙증맞은 사이즈 어댑터도 매우 작습니다. 어댑터 잭 규격이 꽤 작네요. 제가 가진 다른 노트북들과는 호환되지 않을 듯 합니다. 전원을 켠 상태, Windows10 이 기본으로 설치되어 있습니다.(최초 부팅시 환경설정만 하면 됩니다.) 좌측에는 어댑터, HDMI (mini 아님), 이어폰, mini SD가 있습니다. 우측에는 USB 포트가 2개 있습니다. 밑을 보면 4개의 러버가 미끄럼을 방지해 줍니다. 수령하자마자 설정한 비번에 오타가 있었던 탓에, 리커버리 모드를 바로 사용해 봤습니다. 어댑터를 연결하고 전원을 끈 상태에서, 키보드 좌측 상단의 버튼을 .. 더보기
lenovo i-Slimbook 100s vs ASUS x205ta 사건의 개요저는 이래저래 미팅에 자주 끌려 다니고 있습니다. 보통 미팅간 간단한 메모가 필요한 경우도 있어서 간단히 노트와 필기구를 챙겨서 들어가게 되는 경우가 많은데, PC에 저장해 둔 문서를 확인해야 하는 경우, 개발 중인 내용의 시연해야 하는 경우 등 PC가 필요한 상황이 더러 있습니다. 전 직장에서는 데스크탑을 사용했기 때문에, 개인적으로 울트라북을 구매해서 들고 다니면서 활용을 했는데요, 가정에서의 활용도가 높아지기도 했고 무게나 부피 때문에 출퇴근 시 들고 다니기는 다소 버겁더라구요. 이직 후에는 노트북을 지급 받았기 때문에 이동성이 전혀 없는 것은 아닌데,개발자용 제품이다보니 들고 다니기에 어려운 점이 많습니다. (15.6인치, 2.4kg ㅜㅠ) 이에 현재 서브PC에 대한 욕구가 무럭무럭 자.. 더보기
Export excel file via Asp.NET MVC, using OpenXml 개요 Web에서 고전적인 형태로 엑셀 파일을 내려주는 경우(Html table element 활용), 정확한 excel 파일 포맷을 준수하지 않기때문에, viewer가 이를 후 보정하여 보여주는 형태로 동작하게 됩니다. 이를 방지하기 위해서 정확하게 format을 준수하는 excel 파일을 생성하여 제공하기 위해 ExcelDocument와 ExcelResult를 정리하였습니다. 아래의 코드는 References에서 제공하는 것을 살짝 modify한 것입니다.개발하던 중 막히는 부분을 찾아보다가, 거의 그대로 유용할 수 있는 sample을 확보해서... Install Packages OpenXml SDK를 이용하기 위해서는 WindowsBase.dll이 필요하며, SDK를 손쉽게 활용하기 위하여 Simpl.. 더보기
change file name to prevent overwrite 고전적인 형태로 게시판 기능에서 업로드한 파일명을 하나의 폴더에 관리할 때가 있습니다. 이 경우 동일한 이름의 파일이 업로드되는 것에 대한 처리를 해줘야 하는데. 이 때 간단하게 활용할 수 있는 method를 기록차원에서 남겨 둡니다. private string MakeUniqueFileName(string uploadFileName) { string path = Path.Combine(basePath, uploadFileName); var fileInfo = new FileInfo(uploadFileName); string extension = fileInfo.Extension; string fileName = fileInfo.Name.Replace(extension, string.Empty); int.. 더보기
Automatically convert viewmodel properties to camel case. .NET conversion은 Pascal case 인데 반해, Javascript 는 대체적으로 camel case이다 보니 script 작업 간 어색하게 느껴질 때가 많았습니다. 물론 기술적인 이슈가 발생하는 것은 아닙니다만,간단한 처리를 통해서 친숙한 형태의 JSON data를 만드는 방법이 있어 공유합니다. 이를 위해서는 Newtonsoft 의 Nuget 이 필요합니다. Package manager 를 통해서 다음을 설치합니다.Install-Package Newtonsoft.Json 이후 App_Start 폴더의 WebApiConfig 파일에 아래의 내용을 추가합니다. (6, 7 line) public static void Register(HttpConfiguration config) { conf.. 더보기
폴리글랏 프로그래밍 뉴욕의 프로그래머 및 '나는 프로그래머다' 팟캐스트로 유명한 임백준님 저서입니다.수백개의 컴퓨터 언어가 존재하는 지금 중요한 것은 어떤 언어들을 사용할 수 있느냐 보다, 어떤 언어를 빠르게 습득할 수 있느냐가 중요한 패러다임이다라는 이야기를 하고 있습니다.중요한 점은 그 근저에 언어의 철학이라는 점을 강조하고 있으며,그러한 철학이 출현하게 된 배경 및 창시자들의 소개는 흥미 진진합니다. 언어별 코드가 일부 출현하지만, .NET이 주력인 저로서도 별 무리없이 읽을 수 있던 것 같습니다. 또한, 저자가 하고자 하는 개념적인 내용은 대부분 서장 및 3장(스칼라)에 표현되어 있습니다.철학과 역사를 살펴보는 느낌은로 편하게, 재미있게 읽었던 것 같습니다. Linkshttp://iamprogrammer.io/htt.. 더보기