전체보기

언어/C#

C# - 바이트(Byte) 배열 병합(합치기) 팁 및 주의 할 점

C# 잘못된 배열 병합(합치기) ① C#은 C와 달리 배열 복사하는 기능에 대한 유연함에 있어 불편함 을 느낄 수 있다. ② for loop 를 사용해 처리 가능하다. 다만, 잘못된 CopyTo() 메서드 사용은 문제의 소지가 있다. ③ 주로 네트워크 통신 기능 구현에서 많이 활용하므로 잘 이해하도록 하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ///잘못된 C# 배열 병합(합치기) byte[] a= new byte[3]{1,2,3}; byte[] b= new byte[4]{4,5,6,7}; byte[] c= byte[a.Length+b.Length]; a.CopyTo(c,0); b.CopyTo(c,a.Length); /* 코드 리뷰만 하면 정확한 기능..

웹 프론트/Javascript & ECMA

Javascript(자바스크립트) - 싱글톤(Singleton) 패턴 설명

싱글톤(Singleton) 설명 ① 자바스크립트 싱글톤 패턴은 클래스 함수의 인스턴스를 한 개만 유지한다. ② 즉, 여러 객체를 생성 하더라도 최초 생성된 객체를 사용하는 것이다. ③ 객체에 대한 접근자(비공개 멤버 : 클로저)를 사용하여 해당 객체를 공유하는 것이다. 1 2 3 4 5 6 var singletonObj = { a : '값', b : function () { } } cs 싱글톤(Singleton) 예제 ① 아래 예제 코드에서 비공개 함수 init()의 return 값으로 반환 하는 객체가 바로 싱글톤 객체이다. ② 내부 변수에 접근하여 객체를 반환하는 클로저(Closure) 패턴을 사용했다. ③ 즉, 객체를 여러 번 생성(getInstance)를 하더라도 한 개의 객체를 참조하게 되는 것..

언어/Java

Java(자바) - 멀티쓰레드(Multi Thread) 동기화 간단 쉬운 예제

Java(자바) - 멀티 쓰레드(Multi Thread) 동기화 예제 (1). 개요 ① Java 에서 보통 싱글 쓰레드(Single Thread) 인 경우는 프로세스 내에서 단 한 개의 쓰레드가 실행된다. ② 멀티 쓰레드(Multi Thread) 환경은 각 프로세스 내에서 자원을 공유한다. ③ 즉, 멀티 쓰레드(Multi Thread) 환경에서는 원래 의도와는 다른 예측 범위 밖의 실행 결과가 도출 될 수 있다. ④ 이처럼 멀티 쓰레드(Multi Thread) 환경에서 동기화는 중요한 문제이다. 아래 간단한 예제를 통해서 결과를 예측해보자. (2). Multithreading Example without Synchronization (동기화 없는 멀티 쓰레드 예제) 1 2 3 4 5 6 7 8 9 10 ..

언어/Java

Java(자바) - 멀티쓰레드(Multi Thread) 상황에서의 싱글톤(Singleton)

Java(자바) - Multi Thread 환경 안에서 Singleton (1). 개요 ① Java 에서 일반적으로 하나의 인스턴스를 사용하여 JVM 성능향상을 위해 싱글톤(Single) 패턴을 사용한다. ② 싱글 쓰레드(Single Thread) 환경에서 사용 하는 기존 Singleton은 Multi Thread 환경에서 인스턴스 접근 시 문제가 있다. ③ 메소드에 synchronized 키워드 사용 할 경우 멀티쓰레드 환경에서 운영비용 및 오버헤드가 큰 것으로 증명되어 있다. ④ 유명 개발자들 사이에서 이 문제를 해결하기 위한 여러 방안이 제시되었고 아래와 같이 소개해 보려고 한다. (2). Double Checked Locking 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..

웹 프론트/Javascript & ECMA

Javascript(자바스크립트) - 반복문 for loop 성능 향상 팁

Javascript(자바스크립트) - 반복문 for loop(루프) 팁 (1). Javascript - for loop 일반적인 패턴(Pattern) ① 일반적인 패턴 에서는 Loop 문 수행 시 각 배열 및 오브젝트의 length 에 접근한다. ② Json 및 collection 객체 일 경우는 수행 비용이 크다고 볼 수 있다. ③ DOM 접근에 필요한 수행 비용을 줄이자. 1 2 3 4 5 6 7 8 //for_normal.js for ( var i = 0; i

웹 백엔드/Django & Flask

Django(장고) - 에러 페이지 처리(커스터마이징 404, 500 외)

Django(장고) - 에러(Error) 페이지 처리 (1). Step1 - DEBUG(디버그) 모드 종료 ① DEBUG = True 일 경우 : 웹 서버의 정보가 브라우저에 노출 되므로 실 서버 배포시는 반드시 DEBUG = False ② 서버쪽에서 자체 에러 페이지를 보여주기 때문에 에러 핸들러(Handler) 를 등록해야 한다. ③ 2가지 작업은 setting.py, urls.py 두 파일에서 작업한다. 1 2 3 4 5 6 7 8 // settings.py DEBUG = False #디버그 모드를 Disable 하자. ......... ......... Colored by Color Scripter cs (2). Step2 - 핸들러(Handler) 등록 1 2 3 4 5 6 7 8 9 10 11..

웹 프론트/Javascript & ECMA

Javascript(자바스크립트) - Null, Undefined, 데이터형 비교 차이

Javascript(자바스크립트) - Null, Undefined, 데이터형 비교 (1). Javascript - 데이터형에 대한 간단 설명 ① false 반환하는 값 : '', "" , null , undefined, 0, NaN ② true 반환하는 값 : 위에 목록을 제외한 나머지 ③ Javascript 는 타 언어에 비해 데이터형에 대해서 자유로운 언어이다. (2). 데이터형 변환 비교 1 2 3 4 5 6 7 8 9 10 11 12 13 // Number 형 var value1 = 7; console.log(value, typeof value1); // String 형 var value2 = "7"; console.log(value, typeof value2); // 비교 console.log(..

언어/Python

파이썬 알고리즘 - 계단을 오르는 방법 횟수(재귀함수)

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(15) (1). 개발자 면접 트레이닝 - 계단을 오르는 방법 횟수 구하기(재귀함수) ① 재귀함수 숙지 후 실습 ② 응용하면 팩토리얼, 순열 계산 등 여러분야에서 활용된다. (2). 소스 코드 PYTHON #countWays.py def countWays(n): if(n < 0): return 0 elif n == 0: return 1 else: return countWays(n-1) + countWays(n-2) + countWays(n-3) #재귀함수 #만약 4칸의 계단이 있다면 print(countWays(4)) (3). 소스 코드 분석 ① 5 라인 : 재귀함수 countWays 메소드 선언 ② 12 라인 : 함수를 리턴(return) ③ 17 라인 : ..

개발도구/Git

Git - 맥(Mac OS X) 버전 설치 및 기본 설정

Git - 맥(Mac OS X) 버전 설치 및 기본 설정 (1).Git 다운로드 및 설치 공식 홈페이지 링크 클릭 후 아래 그림과 같이 설치 Mac OS X 선택! pkg 파일 클릭! 설치 화면 계속 클릭! 설치 전 계정 정보 확인! 최종 설치 완료! (2). 설치 중 참고사항 * 알수없는 개발자 오류 발생 후 설치 불가시 아래와 같이 설정한다. 시스템 환경 설정 클릭! 보안 및 개인 정보 보호 클릭! 확인 없이 열기 클릭! (3). 실행확인 터미널 에서 실행git version git status (4). 기타사항 * 최초 설정은 아래와 같다. * git init : 프로젝트 활성화(해당 프로젝트 폴더 이동 후) * git config --global user.name "본인 이름" * git conf..

개발도구/Git

Git - 윈도우(windows) 버전 설치 및 기본 설정

Git - 윈도우(windows) 버전 설치 및 설정 후 실행 (1).Git 다운로드 및 설치 공식 홈페이지 링크 클릭 후 아래 그림과 같이 설치 윈도우 선택! 윈도우 버전에 맞게 다운로드 받는다. Advanced context menu 를 선택하면 마우스 바로가기 메뉴에 추가되서 더욱 편하게 사용 가능! 마우스 바로가기 메뉴에 추가 된 것을 확인! * Use Git Bash only : Git Bash 실행 * Run Git from the windows Command Prompt : 윈도우 cmd로 실행 * Run Git and included Unix tools from the Windows Command Prompt : Bash + Cmd 실행 (추천) (2). 실행 방법 * 윈도우즈 프로그램 목..

[좋은사람]
'분류 전체보기' 카테고리의 글 목록 (17 Page)