본문 바로가기

전체 글

(25)
함께 자라기 리뷰 📚책을 읽게된 계기 웹개발자가 되기위해 공부를 하던 중, 방향성없이 무작정 들이대기 보다는, 방향성을 잡은후에 공부하는것이 장기적으로 봤을때 도움이 될것이라는 생각이 들었다. 흔히, IT대기업하면 떠올리는 네카라쿠배 에 소속된 개발자들의 업무 및 자기개발방식을 참고해보고 싶었고, 배민 우아한테크코스 프론트엔드 교육 담당자로 활동중이신 메이커준(임동준)님의 강연(라이브세션)을 듣게되었다. 메이커준님이 성장에 대한 고민이 있는 개발자들에게 '함께자라기:애자일로가는길'을 추천해주셨고, 바로 그자리에서 책을 구입했다. ✨기억에 남은 내용 ✅ 소프트웨어 개발에서의 경력과 실력 경력과 업무수행능력은 깊은 상관성이 없다. 최소한도의 경험치만 넘어가면 경력연수와 실제 직무성과의 상관성이 생각보다 낮다. 경력은 양적인면..
MVC 모델이란 * 참조자료 : 위키백과(모델-뷰-컨트롤러) 모델-뷰-컨트롤러 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 모델, 뷰, 컨트롤러의 관계를 묘사하는 간단한 다이어그램. 주: 굵은 선은 직접적인 관계를, 점선은 간접적인 관계를 나타낸다(옵저버 패턴). 웹 애플리케이션�� ko.wikipedia.org M. 모델(Model) - 데이터 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여 줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가/제거/수정할 수 있다. 그러나, 특정 MVC모델은 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어 오기도 한다. 어플리케이션이 "무엇"을 할 것인지를 정의하며, 내부 비..
람다식(Lambda Expression) 람다식(λ-Expression) 은 익명 메소드를 만드는 또 하나의 방법이다. C#뿐만 아니라 C++, JAVA, Python과 같은 주류 프로그래밍언어에서는 대부분 람다식을 지원하고있다. A. 람다식의 형식 //매개 변수 목록 => 식 delegate int Calculate(int a, int b); //익명메소드를 만들기위해 대리자가 필요하다. static void Main() { Calculate calc = (int a, int b) => a+b; //두개의 int 형식 매개변수 a,b를 받아서 //이 둘을 더해 반환하는 익명 메소드를 람다식으로 만들었다. } ※ 추가적으로 C# 컴파일러는 위 코드를 간결하게 만들 수 있도록 "형식유추(Type Interface)" 라는 기능을 제공한다. del..
대리자(Delegate)와 이벤트 - 2 (이벤트, 대리자와 이벤트의 차이) A. 이벤트 : 객체에 일어난 사건 알리기 이벤트는 대리자를 event 한정자로 수식해서 만들기 때문에 동작원리는 대리자와 거의 비슷하다. - 이벤트를 선언하고 사용하는 절차 Step 1. 대리자를 선언한다. 대리자는 클래스 밖에 선언해도되고, 안에 선언해도 된다. delegate void EventHandler(string message); Step 2. 클래스내에 1에서 선언한 대리자의 인스턴스를 event 한정자로 수식해서 선언한다. class MyNotifier { public event EventHandler SomethingHappend; public void DoSomething(int number) { int temp=number % 10; if(temp!=0 && temp%3==0) { ..
대리자(Delegate)와 이벤트 - 1 (대리자, 대리자를 사용하는 이유와 상황, 일반화 대리자, 대리자 체인, 익명 메소드) 1. 대리자(Delegate) 콜백(Callback)은 프로그래밍에서 어떤일을 해줄 코드를 두고, 이 코드가 실행할 세부코드는 컴파일 시점이 아닌 실행시점에 부여하는것이다. 또한, 대리자는 메소드에 의한 참조이며, 대리자에 메소드의 주소를 할당한 후 대리자를 호출하면 이 대리자가 메소드를 호출해준다. //대리자 선언예시 //메소드에 대한 참조이므로 자신이 참조할 메소드의 반환 형식과 매개 변수를 명시해줘야한다. delegate int MyDelegate(int a, int b) * 대리자는 인스턴스가 아닌 int, string과 같이 형식(Type)이며, 인스턴스를 따로 만들어야 사용가능하다. ex) int Plus(int a, int b){return a+b;} int Minus(int a, int b..
예외 처리하기 (try~catch문, System.Exception 클래스, 예외 던지기, finally, 사용자 정의 예외클래스, 예외 필터(when), 예외처리의 장점) A. try ~ catch문 static void Main(string[] args) { int[] arr = { 1, 2, 3 }; try { for (int i = 0; i < 5; i++) Console.WriteLine(arr[i]); } catch(IndexOutOfRangeException e) { Console.WriteLine($"예외가 발생했습니다 :{e.Message}"); } Console.WriteLine("종료"); } B. System.Exception 클래스 C#에서 모든 예외클래스는 System.Exception 클래스로부터 파생되었다. 즉, catch절에서 Exception으로 모든 예외를 다 받아낼 수 있다. * 하지만, 예외 상황에 따라 섬세한 예외 처리가 필요한 코드에..
일반화(Generic) 프로그래밍 (일반화 메소드/클래스, 형식매개변수 제약, 일반화 컬렉션) A. 일반화 메소드(Generic Method) 데이터 형식을 일반화한 메소드. 일반화할 형식이 들어갈 자리에 구체적인 형식의 이름 대신 형식 매개 변수(Type Parameter)가 들어간다. //int형식 void CopyArray(int[] source, int[] target) { for(int i=0;i
인덱서 (인덱서의 선언과 사용, foreach가 가능한 객체 만들기) A. 인덱서(Indexer)의 선언 인덱서(Indexer)는 인덱스를 이용해서 객체 내의 데이터에 접근하게 해주는 프로퍼티이며, 프로퍼티와 인덱서의 차이점은 인덱스를 사용하여 객체를 배열처럼 사용하게 해주는것이다. 아래는 인덱서의 선언 예시이며, MyList는 내부에 정수형식 배열을 갖고, 인덱서를 통해 이 배열에 접근한다. 인덱서를 통해 데이터를 저장하고자 하는 시도가 이뤄질때 지정한 인덱스보다 배열의 크기가 작다면 인덱스에 맞춰 배열의 크기를 재조정한다. class MyList { private int[] array; public MyList() { array = new int[3]; } public int this[int index] //인덱서 { get { return array[index]; }..