[C#] ArraryList VS. List<T>

|


ArraryList 와 List<T> 중에서 어떤 것을 사용할까?



C#에서 두가지 타입의 차이점을 무엇일까요?


우선 결론 부터 말하자면 List<T>를 사용해야한다.

ArrayList는 C#에서 제네릭이 없었을 때 사용하던 타입이다. 제네릭을 지원하지 않고 Object를 저장하기 때문에 Boxing과 UnBoxing 오버헤드가 발생하게 된다.


레거시 코드들을 보면 ArrayList를 사용한 것을 볼 수가 있는데, 무조건 List<T> 타입으로 변경하지 말고 신규로 작성하거나 기존의 코드에서  Boxing/Unboxing하면서 속도 문제가 발생할 때만 변경해주는 것이 안정성 면에서 좋다.

(참고: http://hongjinhyeon.tistory.com/90)




And

[C#] if else VS switch 어떤것을 사용할까?

|

[C#] if else VS switch 어떤것을 사용할까?



두 구문은 거의 비슷한 기능을 해서 혼용해서 사용하는 경우가 많습니다. 거의 구분을 안하고 상황에 따라서

기분 내키는 대로 쓰고 있는데, 저는 보통 몇개 안되는 string 타입을 비교 할때는 IF/ELSE를 사용하고 열거형 상수(enum)를 사용할 때는 SWITCH를 사용해서 코딩을 합니다.


하지만 두 구문에는 분명히 차이가 있습니다. 어떤 상황에서 어떤 구문을 선택하는 것이 좋을까요?


1.속도면에서는 몇개 안되는(5개 이하) 아이템을 비교할 때는  속도차이가 거의 없습니다. 하지만 아이템이 많아지면 SWITCH를 써야합니다. 5개 이상의 아이템을 비교 할때는 SWITCH는 해쉬 테이블이나 룩업 테이블을 구현해서 아이템에 접근하기 때문에 어떤 아이템 이든지 접속시간은 같습니다. 즉 아이템이 5개 이상일때는 SWITCH가 빠릅니다.( O(1) : O(1) describes an algorithm that will always execute in the same time (or space) regardless of the size of the input data set. )


IF/ELSE 는 조건에 맞을 때까지 비교를 해서 중간에 맞으면 빠져나오므로 최대 아이템 갯수만큼의 비교 시간이 걸릴 수 있습니다.( O(N) : O(N) describes an algorithm whose performance will grow linearly and in direct proportion to the size of the input data set.  )


2.가독성면에서도 3개 이상이 되면 SWITCH 를 사용하는 것이 좋습니다. 

3.유지보수면에서도 SWITCH는 새로 추가되는 아이템이 있으면 확장하기 좋습니다.


개인적으로는 2개 내지 3개 정도면 IF/ELSE가 가독성 면에서 유리 하며 5개 이상이면 SWITCH를 사용하는 것이 좋은 것 같습니다. 


결론은,

아이템이 5개 미만 : IF / ESLE

아이템이 5개 이상 : SWITCH





And

[5분만에 책 한권 읽기] 소프트 스킬(soft skill) : 평범한 개발자의 비범한 인생 전략 71가지 - 존 손메즈

|


소프트 스킬
국내도서
저자 : 존 손메즈 / 이미령,김태곤역
출판 : 길벗 2015.11.27
상세보기



소프트 스킬[soft skill] : 평범한 개발자의 비범한 인생 전략 71가지 - 존 손메즈






+이 책은 소프트 스킬에 대해서 전직 프로그래머가 쓴책이다.


소프트 스킬[Sotf Skill]이란?

인간관계의 기술

감성지능 관련 기능

대인 관계, 팀워크, 협업, 리더십 등

의사소통, 인간관계 형성, 협업, 변화관리, 협상 등의 능력


하드 스킬[hard skill]

기술력

전문 지식이나 직무 스킬


평범한 개발자가 성공하기 위한 71가지의 다양한 범주의 팁을 알려준다.

기본적인 스킬업 부터 재무 및 건강까지 본인이 생활하면서 깨닭은 좋은 팁들을 

잘 정리해놨다. 읽다보면 뭐 이런걸 다... 하는 제목도 좀 있지만 언젠가는 필요한 정보들로 보여진다.


평범한 개발자가 33세에 어떻게 은퇴했는지를 잘 설명해놨다.

여러가지 팁들이 있지만 내가 파악한 평범한 개발자가 성공는 핵심은 이것이다.


<목표설정 , 시간관리, 자신을 마케팅>


기본적으로 목표설정은 필수 이고 뽀모도로 기법을 이용해서 시간관리를 하고 자신을 알리고 광고 및 지식을 공유하는

수단으로 블로그,유튜브 동영상을 활용한다.




[책의 요점 정리 및 좋은 말들]


1. 자신을 마케팅하고 광고하는 방법 : 블로그 만들기

   -블로그를 성공적으로 운영하고 싶을 때 필요한 단 한가지의 요소는 "꾸준함"


2. 출간하기:저술로 돈을 벌긴 어렵지만 이름을 알릴 수 있다.

   -처음에는 독자층이 없으니 자가 출판은 한다. 

   -자가출판서비스:린펍(Leanpub),Kindle Direct Publishing,스매시워즈(Smashwords),북베이비(Bookbaby)

   -작든 크든 도전하라.


3. 10단계 학습법

   1.큰그림을 보라

   2.밤위를 정하라

   3.성공을 정의하라

   4.자료를 찾아라

   5.학습 계획을 세워라

   6.자료를 선별하라

   7.대충 사용할 수준까지 배워라

   8.놀아라

   9.유용한 일을 할 정도까지 배워라

   10.가르쳐라(블로그,유튜브 동영상,발표하기,온라인 포럼 질문 답하기)

       -동영상 만들기:스크랜캐스트,캠타시아(Camtasia),스크린플로(ScreenFlow)


4. 멘토를 찾고, 멘티를 찾아라


5. 뽀모도로 기법(Pomodoro Technique) : 생산성을 향상시키는 기법


  1.하루 할일을 계획

  2.타이머를 25분으로 설정하고 계획한 첫 번째 일을 시작

  3.작업은 한번에 한개 만 진행하고 완전히 집중한다 ( 전화나 웹서핑 금지)

  4.25분이 지나면 5분휴식, 여기까지가 1 뽀모도리

  5.뽀모도리를 네번 반복하고 (25분+5) X 4 , 15분 동안 휴식

  6.작업을 일찍 끝냈다면 남은 시간은 추가학습(overlearning,작업을 개선하거나 배우고 싶은 자료 찾기) 한다.


6. 할당량을 정하라


  -매주 또는 매월 완료할  할당량을 정하라

  -예.매주 3회 조깅, 매주 블로그 글 한개, 매주 뽀모도리 50개 끝내기 등


  [할당 체계 규칙]

   1.반복 가능한 작업을 선택한다.

   2.작업이 완료되고 반복되어야 하는 주기를 정한다.

   3.한 주기 안에 작업을 몇 번 완료할 것인지 할당량을 정한다.

   4.실천한다. 할당량을 완수할 수 있도록 실천한다.

   5.조정한다. 할당량을 더 높이거나 낮춘다. 하지만 실천주기 도중에는 조정하지 않는다.




And