본문 바로가기

전체 글88

Web Form : API 기능 구축 오래전에 ASP.NET Web Form 으로 만들어진 웹 어플리케이션 상에서 외부에서 호출할 API 기능을 추가하는 일이 있었기 때문에 그 내용을 정리해 보았습니다. 1. Global.asax 와 Global.asax.cs 의 확인 및 설정 1-1. Global.asax와 Global.asax.cs의 작성 ※ Global.asax와 Global.asax.cs 가 해당 프로젝트에 존재하지 않을 경우 입니다. 아래의 순서로 Global.asax 파일을 생성합니다. File -> New -> File -> Global Application Class 위의 처리로는 Global.asax 파일만 작성 되므로 Add -> Add New Item -> Class (Visual C#) 를 선택하여 ~/ 또는 ~/App.. 2019. 2. 1.
역시 개발은 운빨이다 지난해 4월말에 회사에서 개발한 기존 Windows 8.1 스토어 앱의 에러 대응을 일시적으로 담당했는데, 에러가 발생하는 타이밍과 해당 장소는 알아냈으나 아무리 해도 에러가 해결이 되지 않아서 일주일 정도 머리를 쥐어 뜯다가, 윗선과 상담해서 그 스토어 앱을 실제로 개발했던 사람에게 바톤터치를 했는데… 나중에 그 사람이 저에게 찾아와서 했던 말을 듣고 역시 개발은 운빨이다. 라고 새삼 생각을 했기 때문에 간단히 생각을 정리해 보려 합니다. 당시 담당했던 Windows 8.1 스토어 앱의 개요실행환경은 Surface단말에 윈10회사에 방문하는 방문자용 자동접수 창구용 앱방문자의 예약 확인/개인정보 이용 확인/방문자의 얼굴을 촬영후 방문자의 이름과 얼굴사진을 스티커에 출력하여 방문자가 회사내를 이동할 경우.. 2019. 1. 28.
C# private key로 SSH 접속 후 리모트 내의 MySQL에 접속해서 DB 조작 하기 하고 싶은 것 C#으로 콘솔 응용 어플을 작성 할 예정 외부에 있는 Linux 서버(VPS)에 private key로 SSH 접속해서 이것 저것 만지고 싶다 리모트 측의 MySQL(해당 서버 입장에서 보면 Localhost)에 접속해서 DB를 조작하고 싶다 전제 조건 SSH의 private key는 빌드한 폴더에 격납합니다. ex) \bin\Debug\openssh.key 또는 \bin\Release\openssh.key ※기본의 id_rsa(private key)파일을 카피해서 openssh.key로 이름을 변경 하였습니다. 필요한 패키지 SSH.NET https://www.nuget.org/packages/SSH.NET/ MySql.Data https://www.nuget.org/packages/My.. 2019. 1. 28.
MySQL에서 Rollback이 적용되지 않는 케이스에 대해 경위 수년전에 만들어진 사내용 DB가 존재하는데 이번에 DB를 사용하는 새로운 서브 시스템을 개발하게 되었습니다. 해당 DB는 기존에 있는 사내 시스템을 위해 구축된 녀석으로 이녀석에게 내가 할 수 있는건 SELECT/INSERT/UPDATE밖에 없습니다.(=DB설정을 바꿀 수 는 없는 상황) 서브 시스템은 데이터 연계용으로서 당연히(?) 트랜잭션 처리로 커밋과 롤백을 제어하고 싶습니다. 근데 아래와 같은 에러 메세지가 표시 되면서 MySQL에서 롤백 처리가 안되는 겁니다…; 1196 Some non-transactional changed tables couldn't be rolled back 원인 내가 보고 있는 테이블은 트랜잭션이 적용되지 않는 MyISAM 테이블이었기 때문에 롤백 처리를 지원하지 않.. 2019. 1. 28.
Visual Studio 2017 version 15.7이상의 디버깅 설정에 대해 Visual Studio2017를 업데이트 했더니 웹사이트의 디버깅을 할때 웹브라우저를 닫기만 해도 디버깅이 끝나버리더군요. 디버깅시엔 초기에 열린 웹브라우저는 닫았어도 같은 주소로 재차 웹사이트를 열어가며 확인하는 경우가 많은지라 이대로는 불편하다 느껴서 이전처럼 웹브라우저를 닫아도 디버깅이 끝나지 않도록 하는 설정을 알아봤습니다. 웹 브라우저를 닫아도 디버깅이 끝나지 않도록 하는 설정 설정방법은 매우 간단한데요, 아래의 두 항목의 체크를 안하면 됩니다. Projects and Solutions > Web Projects > Stop debugger when browser window is closedDebugging > General > Enable JavaScript debugging for ASP.. 2019. 1. 28.
C# EPPlus에서 수식설정 변경&값 검색 EPPlus 을 이용해서 엑셀 파일의 수식설정 변경과 값을 검색하는 법을 샘플 소스로 정리해 보았습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using OfficeOpenXml; namespace EpplusTest { public class Program { public static void Main(string[] args) { //ModifiedExcel(); SelectExcel(); } public static void ModifiedExcel() { var path = string.Format(.. 2019. 1. 28.
jQuery의 click이벤트에 관한 메모 아래의 코드에서 unbind(‘click’) 표기가 없을 경우, 이미 $(‘input[id^=attachmentData]’)에 click이벤트가 선언되어 있을 경우엔 같은 이벤트가 중복되어 선언되어 버립니다. $('#elementId').unbind('click').click(function () { // 하고싶은 처리 }); 어째서 unbind('click')가 없으면 안되는 것일까요? 바람직하지 않은 예 아래와 같은 초기설정을 하는 init함수 안에서 click이벤트를 설정한 경우 ※SPA개발에서 1개의 화면에서 상세화면을 표시하거나 닫거나 하는 케이스를 상정했습니다. function init(){ $('#elementId').click(function () { // 하고싶은 처리 console.lo.. 2019. 1. 28.
ASP.NET MVC의 개발이 처음인 사람을 위한 조언 직장에서 ASP.NET MVC를 처음 만지면서 개발하는 사람에 대해 그 사람이 만든 코드를 보면서 코드 리뷰와 ASP.NET MVC의 기능에 대해 조언할 기회가 있었기 때문에 그 내용을 간단히 정리해 보았습니다. 상사의 지시였던지라 [MSDN을 참고 하세요.] 로 끝낼 수는 없는 상황이었기에ㅎㅎ.... 1. 어플 설정은 배포 환경별로 분리시킨다 개발환경과 스테이징 환경, 운영환경이 각자 같은 키에 값이 다를 경우, 아래와 같이 설정하면 배포 환경별로 각자 맞는 값을 반영시킵니다. xdt:Transform="Replace" xdt:Locator="Match(key)" 【Web.config】 배포 환경별로 다른 값을 설정합니다(아래 샘플 참고) Web.config (예) 로컬PC) Web.Debug.conf.. 2019. 1. 28.
C# : API 호출 방법 전제조건 리퀘스트 사양 POST/JSON 레스펀스 사양 JSON API호출 레스펀스의 json문자열은 각각의 Model에 넣는것도 좋지만 그대로 쓴다면 JObject가 편할 듯 합니다. GetResponse API에 리퀘스트를 보내서 레스펀스를 돌려받는 처리를 하는 메소드 입니다. using System.Net; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.IO; using System.Web.Script.Serialization; public JObject GetResponse(string apiUrl, string jsonParameter) { .. 2019. 1. 28.