본문 바로가기

개발 이야기/개발자 이야기31

비트연산 활용하기 안녕하세요 마블랑입니다. 이번 포스팅은 비트연산에 대해서 알아보도록 하겠습니다. 가장 기본이 되는 비트연산표를 먼저 알고 난뒤에 보시면 이해가 쉬울꺼 같아 간단하게 비트연산에 대해서 설명을 해두었습니다. 1. AND ( & ) AND 연산은 두개의 값이 모두 1일 경우에만 결과값으로 1을 출력합니다. 비트연산중 AND 연산을 통해 해당 비트가 켜져있는지 확인을 할수 있고 값을 0으로의 초기화 할수도 있습니다. 1) 비트 상태 확인 1011 1011 & 0000 0010 -> BIT2 상태확인을 위한 AND 연산 --------------------- 0000 0010 -> 결과값에서 두번째 비트가 1이므로 BIT2가 켜짐 상태인것을 확인 2) 0으로 초기화 1011 1011 & 0000 0000 -> 0.. 2019. 6. 22.
[데이터베이스] DB 테이블 정수형 컬럼 값 증가시키기 안녕하세요 마블랑입니다. 데이터베이스 연동 프로세스를 구현하던중에 해당 데이터의 값을 1 증가시켜야 했습니다. 마블랑과 같은 기능을 구현하는 분들도 많이 있을거라 생각합니다. 이전에는 Select를 통해 데이터를 가져오고 나서 로직을 통해 1을 증가시키고 다시 데이터베이스에 Update 하는 방식으로 구현을 했었습니다. 하지만 좀더 새로운 시도를 해본결과 Select 구문을 사용하지 않고 간단하게 데이터를 증가시킬수 있는 방법을 알아냈습니다. Update [테이블명] set [증가할 컬럼] = [증가할 컬럼]+1 (Where 조건식); 해당 Update 구문을 사용하면 자동으로 데이터를 1을 증가시킬수 있습니다. 필요에 따라서 Where절의 조건을 추가할수 있습니다. 그럼 예문을 만들어 보겠습니다. 상품.. 2019. 6. 22.
[데이터베이스] 테이블 생성 SQL (Create Table) 안녕하세요 마블랑입니다. 데이터베이스를 설치하고 사용을 하려면 Table 이라는것을 먼저 생성해줘야 합니다 Sql developer 같이 DB 툴을 이용하면 쉽게 테이블을 생성할수 있지만 커맨드 환경에서도 테이블을 생성할수 있도록 SQL Query 문을 알려드리려고 합니다. CREATE TABLE [테이블명]( [컬럼명 1] [데이터 타입], [컬럼명 2] [데이터 타입], [컬럼명 3] [데이터 타입], ... ); 이렇게 SQL문을 사용하여 테이블을 만들수 있습니다. 그럼 대괄호를 한번 채워보겠습니다. 예시로 상품정보에 대한 테이블을 구현해 보겠습니다. CREATE TABLE Product( No int, Name varchar(20), Location varchar(10), Note varchar(.. 2019. 6. 22.
비주얼 스튜디오 디버그 조건식 추가 안녕하세요 마블랑입니다. 프로그램을 구현하면서 정말 중요한 기능인 Debug! 개인적인 생각으로 Visual Studio가 IDE로 Debug 기능이 잘되어있다고 생각합니다. Visual Studio만 잘 사용해도 좋은 개발자가 될수 있을듯 합니다. 이번포스팅에는 Visual Studio에서 Debug를 하며 반복문을 통과할때 특정 조건만 중단이 되는 조건식을 추가하는 방법을 알려드리겠습니다. 우선 반복문이 추가된 간단한 코드를 구현하였습니다. 코드에 잘못된 부분이 있어서 수정하였는데 출력문을 반복문 안으로 넣어주었습니다. Visual Studio에서 Debug 중단점을 설정하려면 화면에 보이듯이 중단하려는 지점에 빨간 동그라미가 있는 부분을 클릭하면 됩니다. 이제 특정 조건에만 중단이 되게 설정해보겠습.. 2019. 6. 19.
Visual Studio 2019 Community 버전 사용기간 만료 계속 사용하기 (비주얼 스튜디오 평가판 라이선스 연장하기) 안녕하세요 마블랑입니다. 지난번 윈도우 프로그램 개발을 위해 VIsual Studio 무료 평가 버전인 Community 버전 설치에 대해서 알아봤습니다. 얼마전에 알았지만 이 평가버전은 30일이라는 사용기간이 정해져 있더군요 그래서 설치후 30일이 지난 뒤에 Visual Studio를 실행시키면 아래와 같은 화면이 팝업됩니다. 그리고 Visual Studio를 사용할수 없습니다. 이 팝업창이 표시되는 이유는 평가기간이 끝났다는 것을 알려주기 위해서 표시가 되는 것인데요. 그렇지만 평가기간이 끝났다고 해서 Visual Studio를 계속 사용하지 못하는 것이 아닙니다 ^^ 팝업창이 표시가 안되고 계속 사용하기 위해 어떻게 해야하는지 방법을 알려드리겠습니다. VIsual Studio를 계속 사용하기 위해서.. 2019. 6. 17.
VisualStudio 2019 무료 버전 Community 버전 설치(Window 무료 개발툴 ) 안녕하세요 마블랑입니다. 이번 포스팅은 윈도우 프로세스 개발에 대한 포스팅입니다. 윈도우 프로세스라고 하면 마이크로 소프트사의 Visual Studio를 사용하여 개발되된 것이 대부분입니다. Visual Studio는 원래 상용화 제품으로 구매를 해야 개발을 할수있지만 마이크로 소프트에서 개인 사용자에게는 무료로 사용할 수 있는 Community 버전을 배포하고 있습니다. 그래서 이번 포스팅은 Visual Studio 무료 버전인 Community 버전을 다운받고 설치하는 방법에 대해서 알려드리겠습니다. 먼저 포털사이트에 검색을 통해서 마이크로소프트 공식 사이트로 접속합니다. (URL을 입력하여 들어가든 링크를 타고 들어가든 상관없습니다. 아무튼 접속해 주세요~) 홈페이지에 들어가면 오른쪽 상단에 "Mi.. 2019. 4. 26.
비주얼스튜디오 단축키 (바로가기 키 설정, 기본 바로가기 키 소개) 안녕하세요 마블랑입니다 윈도우 개발자라면 대부분 Microsoft의 VisualStudio를 많이 사용합니다. 코드 작성이나 라이브러리 참조, 빌드, 디버그 등 편리한 기능이 많은데요 기능이 많은만큼 메뉴도 많아져서 사용할때마다 찾아야합니다. Visual Studio에서 많은 기능중에서 자주 사용하는 메뉴를 단축키로 등록해서 사용할수 있는데요 간단하게 설명 드리면 메뉴 -> 도구 -> 옵션 -> 환경 -> 키보드 에서 특정키를 누르고 콤보박스를 이용해서 단축키 편집을 하시면 됩니다. 이렇게 사용자가 직접 단축키를 설정할수 있지만 기본적으로 많은 메뉴가 단축키로 등록되어 있습니다. 그중 유용한 단축키만 몇가지 소개해 드립니다. Ctrl + K, Ctrl + F : 선택된 부분 코드 정렬(들여쓰기) Shif.. 2019. 2. 7.
[데이터베이스] 오라클 ORA-30036 에러 해결 (새그먼트를 8만큼 실행취소 테이블스페이스 'UNDOTBS1'에서 확장할 수 없음) 안녕하세요 마블랑입니다. 이번에 업무관련하여 오라클 데이터베이스에 쿼리문을 실행하다 에러가 발생하였습니다. 쿼리를 실행하였을때 처리되는 데이터 양이 너무 많아 두시간 좀 넘게 걸렸었는데 실행은 되지않고 에러문만 출력되는 군요... 출록된 에러문은 ORA-30036으로 "새그먼트를 8만큼 실행취소 테이블스페이스 'UNDOTBS1'에서 확장할 수 없음" 이라는 메시지도 함께 출력이 되었습니다. 무슨말인지 전혀 몰라서 에러코드를 구글링 해본결과 간단히 설명하자면 한번에 실행되는 쿼리의 데이터양이 너무 많아 메모리가 부족하여 더이상 실행할 수 없다고 설명드릴수 있겠습니다.(데이터베이스의 내부적 동작에 대해서는 잘 알지 못하여 간단하게 설명드렸습니다~) 두시간이나 걸려서 에러코드를 받았는데 아마 쿼리가 잘못된거였.. 2019. 2. 1.
[데이터베이스] SQL Query문 간단 정리 (SELECT, INSERT, UPDATE, DELETE 쿼리문 사용법) 안녕하세요 마블랑입니다. 가끔 데이터베이스와 연동하는 프로그램을 구현해야할때가 있습니다. 어렵지 않은 쿼리문인데도 헷갈리기 때문에 포스팅을 통해서 정리를 해두려고 합니다~ 데이터베이스마다 쿼리문이 조금씩 다르지만 이 포스팅에 정리되는 내용은 거의 모든 데이터베이스에서 사용되는 기초적인 쿼리문입니다~ 1. SELECT 가장 기본이 되는 데이터를 불러오는 쿼리문입니다. 1) SELECT 컬럼명 FROM 테이블명; - 해당 테이블의 해당컬럼의 데이터를 불러옵니다. 컬럼 전체를 불러오고 싶을때는 컬럼명 부분에 '*' 를 넣으시면 됩니다. 2) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=값; WHERE 구문을 추가하여 해당 조건이 참인 데이터만 불러옵니다. WHERE 뒤에오는 컬럼명의 값이 지정한 값.. 2019. 1. 5.
카이사르 암호 시저암호 치환암호 Rot13 키없는 암호 알고리즘 안녕하세요 마블랑입니다. 이번에 회사업무를 진행하면서 데이터 암호화에 대한 내용을 처음 접했습니다. 암호라고 하면 복잡하고 어렵다는 선입견이 강했습니다. 어떤 암호화 기법을 쓸까 하며 고민을 하던중에 굉장히 쉬운 암호화 기법이 있다는 것을 알았습니다~ 쉬운만큼 보안에 약점이 될수 있지만 암호에 대해서는 입문 단계라서 하나씩 배워볼까 합니다. 처음으로 배운 암호는 카이스르 암호라고 불리는 암호입니다. 카이사르의 스펠링이 Caesar 인데 어떠한 언어를 사용하느냐에 따라 시저로 읽을수도 있어서 시저 암호라고도 불리는 것 같습니다. 카이사르 암호를 간단히 말하자면 치환 암호입니다. (치환의 뜻은 바꾸다라는 뜻입니다~) 카이사르 암호에 대해 설명드리기 위해 예시를 들어볼게요~ "Happy new year"를 암.. 2018. 12. 22.
[데이터베이스] ORA-01013 사용자가 현재 작업의 취소를 요청했습니다.(user requested cancel of current operation) 해결방법(CDatabase 타임아웃 설정,timeout set) 안녕하세요 마블랑입니다. 이번 포스팅은 오라클DB를 사용하다 발생하는 에러에 관한 내용입니다. 해당 에러메시지는 "ORA-01013 사용자가 현재 작업의 취소를 요청했습니다" 라는 메시지로 영어버전을 사용하시는 분들은 다음과 같이 영문으로 표시가 됩니다. "ORA-01013 user requested cancel of current operation" 위 에러는 오라클DB에서 쿼리문을 실행하고 데이터를 처리하는 도중에 발생합니다. 에러의 원인은 코드상에서 쿼리문을 실행하고 처리를 요청하였는데 오라클이 이에 대한 응답을 주지 않아 데이터베이스를 연결한 객체에서 요청이 오지 않으므로 작업을 취소하고 중지를 하게됩니다. 작업을 취소하기 때문에 오라클은 처리 도중에 작업자가 취소하였다는 메시지를 출력하고 작업을.. 2018. 11. 18.
[데이터베이스] Window(윈도우)7 과 10 에서의 ODBC 드라이버 등록하기 안녕하세요 마블랑입니다. 시스템을 개발하게 되면 데이터베이스와 연동할 일이 대부분일 것입니다. 이번 포스팅은 데이터베이스와 관련하여 윈도우에서 ODBC드라이버를 등록하는 방법에 대해서 설명하려고 합니다. 먼저 ODBC란 Open DataBase Connectivity의 약자로 마이크로소프트에서 만들었습니다. MS에서 만들었으니 윈도우에서 당연히 사용할수 있고 추후에 표준화가 되어 리눅스나 유닉스에서도 사용할 수 있다고 합니다. (출처 : 위키백과) 어떤 데이터베이스를 쓰던지간에 ODBC로 등록을 하고 DNS와 ID, PW 만 알면 데이터베이스에 접근이 가능합니다. ODBC를 등록할때 몇가지 주의사항이 있습니다. 첫번째로 사용자의 윈도우 환경에 대해서 알아야 합니다. 윈도우가 32bit인지 64bit인지 .. 2018. 11. 16.
[MFC] CString 문자열 추출 안녕하세요 마블랑입니다 지난 번에 CString 문자열을 특정문자로 나누는 방법에 대해서 설명을 드렸는데요, 이번에는 CString문자열에서 문자열을 추출하는 방법에 대해서 설명 하겠습니다. 문자열를 추출을 하려면 정규화된 규칙대로 문자열이 구성되어있어야합니다. 그렇지 않으면 사용자의 입력을 받아서 특정위치의 문자열을 추출해야합니다. (구현하려는 프로그램에 따라 알맞게 구현하시면 됩니다.) 날짜와 시간을 예로 들어봅시다. 다음과 같이 날짜와 시간을 나타내는 문자열이 있습니다. 2018-08-15 13:08:40.1232018-09-30 08:24:35.4562018-10-08 10:57:19.7892018-11-08 12:12:12.012... 마지막 문장에서 월과 일을 추출하려면 왼쪽에서 5번째부터 5.. 2018. 11. 8.
[MFC] CString을 특정문자로 나누기 안녕하세요 마블랑입니다. 이번 포스팅은 MFC 프로그래밍을 할때 문자열로 많이 사용하는 CString에 관한 내용입니다. MFC프로그램을 개발하다 보면 CString 문자열의 특정 문자열만 사용해야하는 경우가 많죠? 문자열을 나누는 방법은 char 배열로 복사하여 캐스팅 변환 후 사용하는 방법 등 여러가지 방법이 있는데요. 그 중 하나인 AfxExtractSubString 함수에 대해서 설명하겠습니다. 먼저 AfxExtractSubString 의 원형에 대해서 살펴볼까요? (출처 : MSDN, https://msdn.microsoft.com/ko-kr/library/aa991543.aspx) BOOL AFXAPI AfxExtractSubString ( CString& rString, LPCTSTR lps.. 2018. 11. 8.
[객체지향]Overloading과 Overriding 안녕하세요 마블랑입니다. 이번에는 Overloading과 Overriding에 대해서 설명을 하겠습니다. 프로그래밍에 관한 서적을 보다보면 간혹가다 Overloading과 Overriding이라는 단어를 보실수 있을거에요 책에도 설명이 되어있긴 하지만 이해하기에는 좀 어려운 기술이지 않을까 싶은데요 조금이라도 도움이 될까하여 알기 쉽게 설명드리려고 합니다. 이번설명에 소개되는 예제는 C#으로 구현하였지만 Overloading과 Overriding에 대한 설명은 C++이나 JAVA 모두 개념이 동일하니 각 언어에 맞게 응용만 하면 구현하는데 어려움이 없을 것입니다. 먼저 Overloading에 대해 설명을 드리면 같은이름의 함수를 매개변수만 다르게 하여 추가하는 것입니다. 아래 예제 코드를 봐주십시오. O.. 2018. 11. 5.