'개념정리'에 해당되는 글 15건

  1. 2017.06.18 고정 소수점 연산
  2. 2017.06.18 상향식접근과 하향식접근
  3. 2017.03.23 방어적 코딩 기법
  4. 2017.03.22 리팩토링
  5. 2017.03.22 호스팅과 클라우드
  6. 2017.03.22 DDNS (Dynamic Domain Name Service)
  7. 2017.03.22 유동아이피
  8. 2017.03.22 포트포워딩
  9. 2017.03.22 리버싱
  10. 2017.03.22 핸들
개념정리2017. 6. 18. 20:40

프로그래밍에서 연산속도는 실수보다 정수가 더 빠르다.


그러므로 정수로 해결이 가능한 부분은 가능한 정수를 사용하는 것이 바람직하다.


만약 실수를 사용하여 연산 중 속도에 문제가 생길 경우 '실수를 100배한 정수' 를 만들어 연산한 뒤, 최종적으로 결과는 100을 나누어 표시하면 더욱 빠르다.


하지만 연산할 때 정밀도가 달라질 수 있으므로 조심해야 한다.

'개념정리' 카테고리의 다른 글

상향식접근과 하향식접근  (0) 2017.06.18
방어적 코딩 기법  (0) 2017.03.23
리팩토링  (0) 2017.03.22
호스팅과 클라우드  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
Posted by EL2A
개념정리2017. 6. 18. 20:31


하향식 접근

전체를 먼저 정하고 그 밑에 큰 기능등을 정한 뒤 그것들을 계속해서 세분화하여 프로그램을 구조화 시켜 가는 것.



상향식 접근

하향식 접근과는 반대로 각각의 기능이나 기술을 먼저 만든 뒤에 그것들을 모아서 전체 프로그램을 완성시켜 가는 것.




기본적으로 프로그램은 하향식 접근을 통하여 완성해 나가지만, 기능 또는 기술에 대한 확신이 부족할때는 해당부분만 상향식으로 접근해도 좋을것 같다.

'개념정리' 카테고리의 다른 글

고정 소수점 연산  (0) 2017.06.18
방어적 코딩 기법  (0) 2017.03.23
리팩토링  (0) 2017.03.22
호스팅과 클라우드  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 23. 19:39

방어적 코딩 기법중 하나로


IF문을 쓸때 변수명을 오른쪽에 쓴다.


ex)

if  (8 == $num) {

       return $num;

}


이 기법의 장점은 == 대신 = 을 썼을경우 같은 실수에 대한 리스크를 줄일 수 있다.


단 사람은 글을 읽을 때 좌측에서 우측으로 읽기 때문에 위의 방법은 가독성이나 통일성에 문제가 있을 수 있다.

'개념정리' 카테고리의 다른 글

고정 소수점 연산  (0) 2017.06.18
상향식접근과 하향식접근  (0) 2017.06.18
리팩토링  (0) 2017.03.22
호스팅과 클라우드  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 21:00

리팩토링


- 똑같이 동작하는데 코드를 효율적으로 바꾸는 활동을 프로그래밍에서는 리팩토링이라고 한다.

'개념정리' 카테고리의 다른 글

상향식접근과 하향식접근  (0) 2017.06.18
방어적 코딩 기법  (0) 2017.03.23
호스팅과 클라우드  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
유동아이피  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 21:00

웹호스팅 : 서버 한대에 여럿이서 같은 공간을 나눠 쓰는것. 

서버호스팅 : 서버 한대를 혼자 쓰는것 
클라우드 호스팅 : 서버 한대에 가상화로 단독 서버처럼 꾸며서 나눠 쓰는것 



웹호스팅: 한대의 물리적 서버, 즉 하드웨어 스펙상으로 한대의 서버에 여러명의 유저들이 각자의 공간을 할당받아서 물리적인 스펙을 서로 공유하면서 나눠 쓰는 형태입니다. 
그러다 보니, 한쪽이 급격하게 제한된 스펙을 사용하다보면 상대적으로 같이 공유하고 있는 유저쪽에 스펙이 떨어질수도 있고, 관리자 측에서 사용량을 제한을 두겠지만,

나눠 쓰는 유저가 많을수록, 사용할 수 있는 스펙에서 떨어집니다.또한 관리자 기능이 제한되므로 원하는 기능을 사용하기 힘들수도 있습니다. 
장점이라면 요금이 저렴하다 정도입니다. 

서버 호스팅: 말그대로 서버 한대 통째로 쓰는겁니다. 
물리적 하드웨어 한대 그대로 쓰는거죠. 내가 원하면 원하는대로 메모리를 늘릴수도 있고, 하드디스크 늘릴수도 있지만,

그만큼 돈도 들고, 서버 스펙이나 규격에 따라 제한이 있을수도 있겠죠? 램뱅크가 4개인데 메모리를 100기가 올리고 싶다고 해도 물리적인 하드웨어의 제한이 따릅니다. 
장점이라면, 내가 내 서버의 효율을 100프로 쓴다는거고, 단점이라면 물리적인 하드웨어의 단점이 어느정도 존재한다는 거죠. 

클라우드: 물리적 하드웨어 단점을 소프트웨어적으로 해결했다는 겁니다. 
서버 한대에 여럿이 사용한다는 건 웹호스팅 서비스와 비슷하게 생각할 수 있습니다. 
또한,  물리적으로 그서버가 날라가면 그 서버 안에 있던 같은 유저들 다 피해를 볼수도 있습니다. 
하지만, 그 서버 한대가 정말 서버 한대일 수도 있고, 클러스터링과 같은 여러대의 서버를 하나로 묶은 시스템일수도 있습니다. 대부분은 후자겠죠. 
그러다보니, 하나의 거대한 서버로 물리적 하드웨어의 제약은 거의 안받는다는 겁니다. 
그래서 메모리를 늘린다거나, 하드디스크 용량을 늘린다거나, 이러한 부분을 시간적 물리적 제약 없이, 무한적으로 늘릴수 있다는 장점이 있겠네요. 
게다가 요금도 서버호스팅보다는 비교적 저렴한 편입니다.(렌탈형 서버호스팅과 비교했을때요) 
기능상으로는 서버호스팅과 다를바 없이 같다고 볼수 있겠습니다. 
다만, 오에스 상에서 하드웨어 컨트롤하는 명령어같은건 사용이 제한될 수 있습니다. 
그래도 내 가상머신 안에서는 내가 관리자이므로 할당 받은 스펙을 100프로 다 사용할 수 있습니다.


출처 : http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=2613151

'개념정리' 카테고리의 다른 글

방어적 코딩 기법  (0) 2017.03.23
리팩토링  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
유동아이피  (0) 2017.03.22
포트포워딩  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:59

DDNS (Dynamic Domain Name Service)


: 만약 위의 상황처럼 유동적으로 아이피가 바뀌어 버린다면 도메인 네임과 IP가 달라지는 경우가 생길것이다.

ex) 도메인네임 : "MYNAME" / 웹서버 IP주소 : "222.109.61.45"

이 상태에서 만약 웹서버 IP주소가 "222.109.61.42" 로 바뀌어 버린다면 도메인 네임 "MYNAME" 로 접속을 해도

바뀐 IP주소인 "222.109.61.42" 가 아닌 "222.109.61.45" 라는 이전의 아이피로 접속을 하게 되는것이다.


그래서 DDNS 라는것이 필요하다.





위의 그림처럼 DDNS는 도메인과 호스트의 IP를 지속적으로 일치화 시켜준다.

호스트의 컴퓨터에 어떤 프로그램을 까는 등을 해서 어떠한 시간마다(1분에 한번씩, 1시간에 한번씩 등) 아이피를 네임서버에 알려준다.

그래서 IP가 "222.109.61.42" 로 바뀌어도 "MYNAME" 도메인을 접속하게 되면 정상적으로 접속을 할 수 있는것이다.

       ※ 참고 : 공유기에서 설정이 가능하다.

'개념정리' 카테고리의 다른 글

리팩토링  (0) 2017.03.22
호스팅과 클라우드  (0) 2017.03.22
유동아이피  (0) 2017.03.22
포트포워딩  (0) 2017.03.22
리버싱  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:58

유동아이피


: 만약 A라는 컴퓨터가 켜지면 222.109.61.42 라는 IP를 주었다가 컴퓨터를 끄게되면 이 222.109.61.42 라는 IP를 회수한다.

그리고 B라는 컴퓨터를 켜게되서 필요하다고 요청을하면 B라는 컴퓨터에게 222.109.61.42 라는 IP를 할당시켜준다.

그 상태에서 만약 A라는 컴퓨터가 IP를 요청하면 222.109.61.45 라는 IP를 할당시켜준다.


       -처음-

       A:222.109.61.42 (컴퓨터가 켜짐=IP를 요청함)

       B: n/a (없음) (IP를 요청하지 않음)

       -중간1-

       A: n/a (컴퓨터를 끔=IP가 필요없어짐)

       B: n/a (없음)

       -중간2-

       A: n/a (여전히 IP가 필요업음)

       B:222.109.61.42 (컴퓨터를 켬=IP를 요청함)

       -끝-

       A:222.109.61.45 (IP를 요청함)

       B:222.109.61.42 (계속해서 IP를 사용하는 상태)

       

유동적으로 사용하지 않는 IP(A)를 회수하고, 어느 컴퓨터든 IP가 필요하다는 신호가 오면 IP(A)를 할당해준다.

그러므로 IP가 유동적으로 계속해서 바뀌는 것이다.

'개념정리' 카테고리의 다른 글

호스팅과 클라우드  (0) 2017.03.22
DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
포트포워딩  (0) 2017.03.22
리버싱  (0) 2017.03.22
핸들  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:58






IP 주소가 부족함으로 인해서 공유기를 통하여 IP를 다시 재분배 한다.

먼저 공유기의 IP주소는 222.109.62.43 이고 이 아이피를 통해서 내부로 재분배한 192.168.0.2 등으로 접속할 수 있다.

그렇게 하기 위해서 포트를 분배해준다. 222.109.43.80 로 접속을 하게되면 공유기는 192.168.0.2:80 번 포트로 토스를 해준다.

만약 192.168.0.2 의 포트를 8080으로 설정하였을 경우에는 공유기에서 

외부 : 192.109.62.43:80 / 내부 : 192.168.0.2:8080으로 설정을 해주어야 한다.

       ※ 참고 : 공유기에서 설정이 가능하다.

'개념정리' 카테고리의 다른 글

DDNS (Dynamic Domain Name Service)  (0) 2017.03.22
유동아이피  (0) 2017.03.22
리버싱  (0) 2017.03.22
핸들  (0) 2017.03.22
프로그램 개발 순서  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:55

리버싱이란 응용프로그램의 내부 구조와 동작원리를 탐구하는 기술이다.


리버싱 기술을 잘 활용하면 개발/테스트 단계에서 발견하지 못했던 버그나 취약점을 파악하고

파일이나 메모리를 직접 수정/패치 하여 문제를 해결할 수 있다.


더 나아가 새로운 기능을 추가시켜 프로그램의 기능을 향상시킬 수 있다.



리버싱에서 가장 중요한것은 프로그램의 동작원리 파악이다.


리버싱의 대상은 실행파일 exe이다.



정적분석 : 파일을 실행하지 않는 단계의 파일의 종류(exe, dll, doc, zip등)


동적분석 : 파일을 직접 실행시켜서 그 행위를 분석하고 디버깅을 통하여 코드의 흐름과

메모리 상태 등을 자세히 살펴보는 방법

'개념정리' 카테고리의 다른 글

유동아이피  (0) 2017.03.22
포트포워딩  (0) 2017.03.22
핸들  (0) 2017.03.22
프로그램 개발 순서  (0) 2017.03.22
웹언어 3가지 비교  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:55

핸들이란 구체적인 어떤 대상에 붙여진 번호이다.


32 또는 64비트의 정수값으로 이루어져 있다.


윈도우에는 여러가지 종류의 핸들이 있으며 번호로 관리한다.


메모리를 할당할 때 할당한 메모리의 번지를 취급하기보다는 메모리 번호를 붙여서 관리한다.


핸들은 운영체제가 발급하며 사용자는 핸들을 잘 보관해 두었다가 해당 윈도우는 파일을

다시 참조할때 사용하기만 하면 된다.




고등학교 학생들은 출석번호가 존재한다. 이 출석번호가 핸들이다.


이 번호는 학생들이 만든것이 아니라 담임선생님이 붙여준 것이다.


윈도우 핸들은 윈도우가 만드는것이 아닌, 운영체제(담임)가 붙여준 것이며

윈도우는 값을 잘 보관하고 있다가 참조할때 사용한다.


예를들면, 1학년 1반에서 20번은 딱 한명이다. 20번은 두명이 존재할 수 없다.

하지만 옆반에 2반의 20번이 존재할 수 있다.


같은 종류의 핸들끼리는 절대 중복된 값을 가질 수 없다.

다른 종류의 핸들끼리는 중복된 값을 가실수도 있다.


핸들은 정수형 값을 가지고 있지만 변수로 관리되기 때문에 실제값이 무엇인지 몰라도 된다.

'개념정리' 카테고리의 다른 글

포트포워딩  (0) 2017.03.22
리버싱  (0) 2017.03.22
프로그램 개발 순서  (0) 2017.03.22
웹언어 3가지 비교  (0) 2017.03.22
웹 표준 및 접근성  (0) 2017.03.22
Posted by EL2A