개요 프로그래밍에서 Copy에는 Deep Copy(깊은 복사)와 Shallow Copy(얕은 복사) 두가지가 있다. Shallow Copy object class에 MemberwiseClone을 이용하여 Shallow Copy(얕은 복사)를 진행하였다.(Coffee의 Copy 함수는 는 더 아래 참고.) class Program { static void Main(string[] args) { var coffee1 = new Coffee() { Shot = 2, CoffeeBean = new CoffeeBean { Origin = "Brazil"} }; var coffee2 = coffee1.Copy(); coffee2.Shot = 1; coffee2.CoffeeBean.Origin = "Kenya"; C..
오늘은 Architectural Pattern(아키텍쳐 패턴) 중에서도 MVVM 패턴에 대하여 설명해보려고 한다. MVVM 패턴은 주로 엔터프라이즈 규모의 대화형 어플리케이션을 설계하는 뼈대가 되는 패턴이다. 주로 MVC과 비교 된다. 요새 모바일 웹/앱을 포함해 대화형 어플리케이션은 전체 소프트웨에서 상당히 많은 부분을 차지함을 생각해보면, MVVM 패턴은 .Net, ios, Android 등 다양한 분야에서 사용되고 있다는 사실이 크게 놀랍지 않다. Architectural Pattern Architectural Pattern(아키텍처 패턴)은 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 일반적인, 재사용 가능한 해결책을 의미한다.(위키) 생성, 구조, 행위 패턴으로 나뉘어져 있는 일반적인 소프트..
나머지 MySQL Level2 문제를 풀어보려고 한다. 이로써 오늘까지 올려진 프로그래머스의 모든 MySQL Level2 문제를 전부 풀게 된다 1. 이름에 el이 들어가는 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE LOWER(NAME) LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME 2. 중성화 여부 파악하기 SELECT ANIMAL_ID, NAME, CASE WHEN (SEX_UPON_INTAKE LIKE '%NEUTERED%' OR SEX_UPON_INTAKE LIKE '%SPAYED%') THEN 'O' ELSE 'X' END AS '중성화' FROM ANIMAL_INS ORDER BY ANIMAL_ID AS..
1. Heroicons 개수는 적지만, svg 형태를 무료로 제공한다. https://heroicons.com/ Heroicons Beautiful hand-crafted SVG icons, by the makers of Tailwind CSS. heroicons.com 2. Font Awesome 로그인하고 스크립트에 관련 source를 추가시켜 주어야 사용할 수 있다. https://fontawesome.com/v5/search?s=solid%2Cbrands Font Awesome The world’s most popular and easiest to use icon set just got an upgrade. More icons. More styles. More Options. fontawesome..
더보기 There are only two hard problems in Computer Science: cache invalidation and naming things — Phil Karlton 개발을 하다보면, 이름을 짓는 것이 참 어렵고, 중요하다는 사실을 느낄 때가 많다. 개인적인 생각에는 잘 지어놓은 이름은 두고두고 코드를 이해하는데 작용하는거 같다. 네이밍 방법론에 대표적인 것들에는 다음과 같은 것들이 있다. 대표적인 네이밍 방법론 CamelCase(카멜 표기법): 두 개 이상의 단어가 모인 합성어에서 맨 처음 단어를 대문자로 표기하는 방법 lowerCamelCase UppperCamelCase snake_case(스네이크 표기법): 두 개 이상의 단어가 모인 합성어에서 언더라인(_), 또는 ..
보통 새로운 프로젝트를 만들 때, Github에 repository를 만들고 해장 저장소를 Clone 해서 사용한다. 오늘은 반대로 로컬 저장소에 폴더 및 파일을 만들고 이를 원격 저장소와 연결하는 절차를 정리하려고 한다. Try. 일반적인 Clone은 다음과 같다. git clone 이미 해당 폴더가 있다면 다음과 같은 에러 로그가 출력 될 것이다. $ git clone https://github.com/nagneo/react-for-beginners.git fatal: destination path 'react-for-beginners' already exists and is not an empty directory. 해결 1. 해당 폴더를 연다. cd /react-for-beginners 2. gi..
Life is too short, You need python. 파이썬 기초 정리 2탄. 오늘은 파이썬의 대표적인 자료형을 정리해보고자 한다. (긴 글 주의.) 자료형 - 리스트, 튜플, 딕셔너리, 집합 원래 제어문과 예외처리 까지 하려고 했으나 너무 길어져서 실패.ㅠㅠ 초기 기획은 4탄까지 인데, 아마 4탄으로 안끝나지 싶다 이들 자료형은 컴퓨터 구조에서 정의하는 특정 자료구조들의 구현체이고 다음과 같은 특징을 가진다. 순서 수정 가능 여부 중복 가능 여부 list [] Ordered (O) mutable (O) duplicatable (O) tuple () Ordered (O) immutable (X) duplicatable (O) dictionary {} Unordered (X) mutable (O..
Life is too short, You need python. 파이썬 기초를 정리해보려고 한다. 프로그래밍 언어의 특성과 문법은 다 서로 다르지만, 언어를 하나 두개 배우다 보면 언어를 구성하는 기본적인 문법은 다 비슷하다는 사실을 깨닫게 된다. 각 언어에 내장된 표준 라이브러리들도 일반화 되어 있어서 하나의 언어를 완전히 이해하고 있다면, 다음 언어로 넘어가기 쉬워진다. 이 이후에 그 언어를 완전히 이해하기 까지는 꽤나 오랜 시간이 필요하겠지만, 다른 언어를 공부해본 경험이 있다면, 문법 자체를 써보는데에는 하루면 충분함으로, 긴 시간을 할애하지 말자.!! 그 다음은 익숙함의 문제이지 알고 모르고의 문제는 아니다. 문법 정리에 앞서, 내가 참고한 참조 문서들을 소개한다 참고 자료 1. https://..
주석의 코드화 코딩을 하다보면, 단순히 코드 말고 주석 등과 같은 정보를 추가하고 싶을 때가 있다. 그런데 이러한 정보를 주석과 달리 컴퓨터도 읽을 수 있게 하고 싶다고 하면 어떨까? 그 중 한가지가 바로 Attribute 이다. Attribute에 대한 내용은 우리의 친구 MSDN에 잘 설명 되어 있다. https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/attributes Tutorial: Use attributes - C# Learn how attributes work in C#. docs.microsoft.com Obsolete 아마 나를 포함하여 많은 사람들이 맨 처음 Attribute를 접한 경로이지 않을까 싶다. 가장 대표적인 Attribut..
MySQL Level 2 문제풀이를 해보려고 한다. 몇 가지 새로 알게된 키워드가 있었던거 같은데, Level 1과 같이 크게 어렵지 않은 수준인거 같다. 동물 보호소에 들어본 동불의 정보를 담은 테이블 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 [ANIMAL_INS] 1. 고양이와 개는 몇 마리 있을까 :동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개..