MySQL Level 1 문제풀이를 해보려고 한다. 포스팅 남길것도 없이 쉽게 끝났지만, 남겨두면 언제가 유익한 정보가 되길 바라면서... 기본적으로 SQL Level 1의 문제들은 SELECT 문을 잘 활용할수 있는가를 물어보는 수준이다. 모든 문제에 사용되는 DB테이블은 하나이고 스키마는 다음과 같다. 문제풀이 순서는 내맘대로이다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE [동물 보호소에 들어온 동물] 1. 모든..
코딩을 하다보면 문자열 처리를 하는 경우가 많다. StringBuilder보다는 string이 가벼울거 같은 느낌적인 느낌에 (string.join 좋아, 짜릿해) string을 많이 사용하지만, 메모리 낭비의 발생으로 인해 사용시 주의가 필요하다. 예건데, csv 파일을 만들면서 string += ",what" 을 사용하면 개체 생성과 관련한 오버헤드 비용이 증가한다고 할수 있다. string과 StringBuilder string * 네임스페이스: System * 문자열 개체의 불변성 : string는 생성된 후에 변경할 수 없다. 즉, 문자열 수정은 새로운 string을 반환한다. * 문자열 개체의 불변성으로 인하여 참조시 주의 해야 한다. // 예제1) string s1 = "Hello "; st..
보통은 Visual Studio를 이용하여 C# 프로젝트를 만들지만, 최근 VScode를 쓰다보니 C#도 사용할 수 있을까 싶어서 테스트 해보았다. C# 콘솔 어플리케이션 만들기 1. 프로젝트를 생성할 폴더 만들기 2. VScode 실행 3. C# 확장 설치 4. .NET SDK 설치. * 이것을 설치해야 아래 --framework 지정 옵션이 사용가능하다. 안그러면 .netcore로만 생성할 수 있다. * 나는 맨 아래 Reference를 참고하여 SDK 6.0.201을 설치하였다. https://dotnet.microsoft.com/en-us/download/dotnet/6.0 Download .NET 6.0 (Linux, macOS, and Windows) .NET 6.0 downloads for ..
일을 시작한지 1년쯤 되었을 때인가.. 나한테 이것에 관해 질문한 신입사원이 있었다. 그때는 나도 사원이었기에 여차저차 내가 경험한 대로 설명을 했던 것 같은데 오늘에서야 글로 정리해본다. Call by value vs Call by reference 처음 프로그래밍을 접하면, 헷갈리기 쉬운 내용이다. 먼저, 설명할 내용을 요약하자면, Call by value와 Call by reference는 함수 호출 방식에 따른 구분이고, 우리가 사용하는 변수는 Value type variable(int, string 등) 과 Reference type variable(객체)로 구분된다. 참조 타입 변수의 경우, 변수를 새롭게 set하지 않고, 그 안에 내용만 변경하는 경우에는 Call by value 방식으로도 ..
오늘은 WPF / Dependency Property에 대해서 포스팅 해보려고 한다. WPF를 사용하다보면, Button, ListBoxItem, UserControl 등 이미 정의되어 있는 컨트롤을 상속받아 커스텀화된 새로운 컨트롤을 만드는 경우가 심심치 않게 있다. 이 때 "커스텀"할때 반드시 필요하게 되는 것이 Dependency Property 이다. 이를 잘 쓰면, UIElment의 재사용성이 올라가고, 일관성 있는 프로젝트를 만드는데 도움이 된다. 이걸 만들다 보면 결국에는 내가 데이터를 바인딩 해놓은 아주 많은 속성들이 Dependency Property와 연결 되어 있다는 사실을 깨닫게 되는데....! https://docs.microsoft.com/en-us/dotnet/desktop/w..
생산성 향상에 도움을 주는 단축키 정리. 후임님 자리에 없으면... 기어코 셋팅하고 온다.. Edit.MoveSelectedLinesDown/Edit.MoveSelectedLinesUp : Alt + ↑, ↓(Global) // 현재 줄 위아래로 이동 File.OpenContainingFolder : Ctrl + Alt + O (Global) // 현재 파일 탐색기에서 열기 Edit.LineCut : Ctrl + L (TextEditor) // 현재 줄 삭제 Edit.CommentSelection/Edit.UncommentSelection : Ctrl + K + C, U (TextEditro) // 선택영역 주석처리 Toggle Edit.CollapseCurrentRegion/Edit.ExpanCurre..
오늘은 정규 표현식에 대해서 공부 해보려고 한다. 종종 일할 때 문자열을 검색하거나 필터링할 때 유용하게 쓰이는데, 단순히 문법을 아는 것과 자유자재로 쓰는것은 차이가 있는 것 같다. 자유자재로 쓰는 날까지 아자아자.!! 정규표현식 - 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단 - 1956년 스티븐 클레이니가 최초로 고안. - 현재 닷넷 언어, 자바, 파이썬, POSIX C, C++ 등에서 표준 라이브러리를 통해 제공한다. 기본형태 /정규표현식/flag -flag g: global m: multiline i: case insensitive 총 4가지로 분류하여 살펴볼 수 있다. Groups and Ranges C..
큰 규모의 소프트웨어를 개발하다 보면, 구조적으로 SW를 어떻게 설계할 것인가는 중요한 문제이다. 그중에서도 잘 알려진 구조 패턴을 이용하여 프로그램을 설계하면, 일반적으로 알려진 문제를 해결하고 프로그램의 모듈화 재사용성 등을 높이는데 크게 도움을 준다. 아주 뻔한 듯 하지만, 당연한 이야기다. C#/WPF 개발 분야에서는 위와 같은 구조적인 문제해결을 위해 Prism를 사용한다. Prism의 모든 쓰임을 알지는 못하지만, 그 중에서도 MVVM 패턴과 DI를 구현할 때 유용하다. UI와 Model를 분리하는 방식의 구조 패턴인데,MVC와 비슷한 면이 있다. 기회가 된다면 다음 기회에 더 잘 다루어 보기로 하자. 한가지 의문인 것은 프리즘이 라이브러리냐 프레임워크이냐 하는 문제이다. Prism 사이트의 ..
.NET Framework Microsoft는 .Net Framework를 아주 간단 명료한 한문장으로 다음과 같이 설명하고 있다. ".NET Framework is a software development framework for building and running applications on Windows." "윈도우에서 빌드하고 실행하는 어플리케이션을 위한 SW 개발 프레임워크이다." ".NET Framework is part of the .NET platform, a collection of technologies for building apps for Linux, macOS, Windows, iOS, Android, and more" ".NET 프레임워크는 .NET 플랫폼에 일부인데, .NET..
오늘은 프레임워크와 라이브러리에 대해서 공부해 보기로 했다. (저도 이 글을 쓰면서 정리해 나가는 부분이라 오류가 있을 수 있습니다. 발견하시면 댓글로 알려주세요:)) 프레임워크(Framework)란? : 뼈대, 골조 프레임워크(Framework)는 영문 뜻 그대로 뼈대 골조를 의미한다. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applica..