본문 바로가기

헝클어진 알고리즘11

C 포인터 변수는 어떤 값을 저장하기 위한 메모리 공간이다. 그러면 포인터변수는 무엇일까? 포인터 변수는 "주소 값"이다. 설명은 아랫 코드에 달았다. #include int main(void) { int a=1; //a변수에 1을 대입한다. int* pa=&a; // 포인터형 변수pa에 주소값을 대입한다. printf("변수 a의 값 : %d\n", a); *pa=2; //pa주소 값의 역참조. 역참조 되었으니 그 공간을 의미한다. 여기서는 a공간에 2를 넣는다라는 의미이다. printf("역참조를 이용해서 a의 값을 바꾼 후의 a 값 : %d\n", a); printf("a 변수의 실제 메모리상에서의 위치(주소) %p\n", &a); printf("실제 주소 값을 입력 한 후 그 주소에서의 값 출력 : %d\n.. 2023. 2. 2.
빅오 표기법(Big-O notation) 성능을 절대적인 값으로 표현하지 않고 상대적으로 표현하는 방식이다. 예를 들면, 영화 "기생충"에서 송광호씨가 하루에 접을 수 있는 최대 피자박스의 수가 100 개 이다. 그러면 200 개를 접으려면 얼마나 걸릴까? 당연히 2 일이 걸린다. 그러면 우리는 이것을 입력(n)에 따라 비례하는 것이니 O(n)으로 표시할 수 있다. O(n)은 우리 주위에서 쉽게 볼 수 있다. 설계사무실에서의 도면, 자동차공장에서의 차량, 포장기계가 생산하는 제품 등등의 생산성능도 모두 O(n)이다. 그러면 입력크기(n)가 커져도 항상 같은 시간을 유지하는 것이 있을까? 있다. 배열의 원소에 접근하려고 할 때이다. 배열의 첫 번째 원소를 가기 위해서는 배열의 첫 주소에 0을 더한 후 값을 읽어온다. 4 번째 접근하려면 배열의 첫.. 2023. 1. 31.
UML(Unified Modelling Language) UML은 통합된 모델링 언어로 해석할 수 있다. 기존에 모델링 언어가 여러개 있었을 것 같고 이러한 언어를 통합한 것이다. 그러면 모델링은 또 뭐야? 옷을 디자인하는 사람은 옷을 만든 후, 모델에게 입혀서 패션쇼에 선보인다. 자. 이 옷이 이런거야! 공학자는 레이저다이오드의 내부구조와 이에 따른 레이저 발생을 수학적으로 구현 및 컴퓨터 프로그래밍 하여(모델링) 그 내부구조를 변화시키면서 레이저의 상태 및 그 출력을 예상할 수 있다. 프로그래머는 사용자의 요구사항을 도형을 이용해서 표현(모델링) 한 후, 개발자와 사용자간의 명확한 의사교환에 사용하고, 그 모델을 프로그래밍 개발의 기준점이 되도록 한다. 이 때 사용하는 것이 UML이다. 사전적 의미의 모델링은 현실세계의 추상화된 반영이다. UML은 OOP와.. 2021. 11. 20.
함수의 파라미터와 아규먼트의 차이 첫 인상이라는 것은 우리가 처음 만난 사람을 어떠한 파라미터를 가지고 바라보는 것에 따라 달라진다. 개인별로 차잇점이 있겠지만 체형, 목소리, 얼굴형태, 행동 등을 주요 파라미터로 가지고 판단할 것이다. 여기서의 파라메타는 판단의 근거가 되는 요소라 할 수 있겠다. 이러한 파라미터라는 용어는 아랫처럼 사용해도 거부감이 없을 것이다. 어떤 블랙박스가 있다. 우리는 이 블랙박스의 내부를 모른다. 다만 우리는 이 블랙박스를 파라미터로 접근할 수 있다. 어떤 함수가 있다. 우리는 이 함수의 내부 동작 매커니즘을 모른다. 다만 우리는 이 함수에 파라미터를 가지고 접근할 수 있다. 프로그래밍 언어에서의 파라미터는 매개변수라고 번역되어진다. 중매해 주는 변수라는 의미를 강조하는데 프로그래밍 언어에서 사용하는 함수에 .. 2021. 9. 24.
음수의 보수표현 보수란? 보충수(數)이다. 차량 냉각수의 수위가 낮다면? 냉각수를 보충해 준다. 숫자값이 부족하다면 숫자를 보충해주는 것이다. 암산으로 더하거나 뺄 때 사용한다. 왜? 편하니까. 15 - 7 = 10 -7 +5 = 8 로 해서 푼다. 왜? 논리적이며 빠르니까. 그런데 여기서 10-7? (1)은 10에서 7을 빼라는 의미이다. (2)식은 10에서 음수인 7을 더해주라는 의미이다. 이해될 것이다. 이제부터는 음수를 표현하기 위한 보수 개념이 나온다. 이전까지는 우리가 계산을 빠르게 하기 위한 방법으로 보수를 사용했다면 이제부터는 음수를 표현하기 위한 보수를 사용한다는 의미이다. 위의 -7과 혼동되니 그냥 -8이라고 하자. -8은 +10-8-10과 같다. 왜 10? 편하니까... +9-8-9해도 된다. 즉, .. 2021. 9. 8.
정보처리기사 최종 합격 2020년 2회차에 신청해서 1,2회차 통합 시험 필기와 동회차 통합 실기시험을 통과해서 8월 28일 합격자 명단에 올랐습니다. 공부는 필기는 시나공, 실기는 수제비와 두목넷 인강으로 했으며, 공부기간은 필기 2개월, 실기 1개월을 했습니다. 기본적으로 프로그래밍 및 SQL에 대한 이해가 있었던 점이 합격에 큰 도움이 된 것 같습니다. 필기시험 시나공 책을 2회독을 했으며, 공부법은 다음과 같다. 40일에 1회독을 하기 위한 하루치 공부 분량을 정했다. 다음 날에는 전날 공부한 내용을 빠르게 복습했다. 1주일 후부터는 전날 공부한 내용과 더불어 1주일 전에 공부한 내용을 같이 복습했다. 데이타베이스와 프로그램 알고리즘 문제에 대한 대책으로는 책에 나와 있는 설명부분을 "데이타베이스와 프로그램 알고리즘 공.. 2020. 9. 4.
git cli(command line interface) git 설치 https://git-scm.com/ Git git-scm.com 에서 프로그램 다운로드. 자신의 OS에 맞는 git 설치 파일을 다운로드 한 후 설치한다. (설치 방법 생략) 설치 후 WIN+R > cmd > git[enter] 후 화면에 git 사용법이 나타나면 정상 설치 된 것이다. 로칼 저장소(Repository) 생성 c:\git\python 디렉토리에 있는 파일들을 형상관리하고 싶다. cd c:\git\python[enter] git init[enter] 하면 .git 파일이 현재 디렉토리에 생성된다. 즉, git은 .git 디렉토리 내부의 파일들을 참조해서 로칼 저장소내의 파일들의 형상을 관리한다. 버젼(Version)의 생성 현재 디렉토리에는 많은 파일 들이 있을 수 있다. 그.. 2020. 9. 3.
요구사항 확인하기 폭포수 모델 : 계획 > 요구사항 확인 > 설계 > 구현 > 시험 > 유지보수 시스템의 개발, 변경의 목적을 식별하기 위해 이해관계자들의 요구를 이해 및 조정하여 체계적으로 수집, 분석, 명세화, 확인하여야 한다. 요구사항을 확인 안하고 시스템을 개발, 변경한다는 것은 상상 할 수 없다. 요구사항을 확인하기 위한 절차 도출 > 분석 > 명세서 > 확인 요구 사항 도출(Elicitation) : 많은 요구사항 중에서 제대로 된 요구사항은 요구사항 도출 기법(예: 인터뷰, 설문조사, 워크샵 등등)을 통해서 도출할 수 있다. 요구사항 분석(Analysis) : 도출된 요구사항을 분석할 때 요구사항 분석 기법을 동원해서 해야된다. 온라인 게시판을 만들자면 기능적/비기능적 요구사항을 확인하면 충분했는데 이제는 소.. 2020. 6. 23.