본문 바로가기

전체 글

(67)
[멋쟁이사자처럼 Back-End School 1기] Day 12. C언어, Java C언어 💡 scanf 함수를 호출 시 두 번째 인자로 변수의 주소 값을 넘기는 이유 ● 본인 생각 - 함수 배개변수가 스택에 새로운 메모리를 차지한다. - scanf의 새로운 변수를 스택으로 쌓는 것이 아닌 미리 지정한 변수의 메모리 주소에 넣어줘야 해당 변수의 값을 변경 하는 것. ● 강사님 답변 - scanf : 개발자 대신 키보드의 입력을 관찰하는 역할 ❗ scanf에 포인터 주소를 넣어주는 이유 ○ 공간을 빌려줄 수 없다. ○ 공간은 주소를 통해서 공유되기만 한다. → 대신맨 역할 : 정확한 주소를 알아야 그 주소의 값을 넣어줄 수 있다. ❗ C언어에서는 Python의 input()을 사용하지 않는 이유 ○ Python : 약타입 언어 ○ C언어 : 강타입 언어 ⇒ 더 세밀하게 조정이 가능하다. ..
[멋쟁이사자처럼 Back-End School 1기] Day 11. C언어, Java C언어 배열 사용 이유 - 관련된 데이터 모음 - 변수 1개로 공간 여러개를 컨트롤 할 수 있다. -- 배열은 스택 안에 해당 배열의 크기만큼 들어갈 수 있는 공간을 차지한다. 자료형의 크기 * 배열의 수 만큼 공간을 차지한다 - int a[10] = 총 40byte(int a : 4byte * 10) 포인터 #include int main(void) { int a9, a8, a7, a6, a5, a4, a3, a2, a1, a0; a0 = -10; a1 = 10; a2 = 100; a3 = 210; a4 = 322210; a5 = 1440; a6 = 1130; a7 = 33210; a8 = 1210; a9 = 33210; int max_number = 0; for (int i = 0; i < 10; i..
[멋쟁이사자처럼 Back-End School 1기] Day 10. Git, GatsBy Git git clone 주소 : 해당 주소 레포지토리의 파일들을 가져온다. = git init → git remote add origin 주소 → git pull origin master git pull origin master -allow-unrelated-histories : git의 pull이 실행되지 않을 경우 사용 → 프로젝트 폴더를 완전히 삭제 후 진행 git push origin master -f : 서버의 오류를 무시하고 push 실행 - 서버의 특정 커밋을 무시하고 로컬에 있는 것으로 진행하고 싶을 경우 사용 git rm —cached “파일명” : 파일명의 add를 삭제 GatsBy localhost:8000/ localhost:8000/test localhost:8000/test-s..
[멋쟁이사자처럼 Back-End School 1기] Day 9. 포인터, Git, GatsBy C언어 기초 포인터 주소로 원래 변수 훼손하기 // 문제 : 원본값을 훼손하는 change 함수를 만들어주세요. #include // 수정가능지역 시작 void change() { int num; // stack으로 변수 num의 메모리 할당 int* p = &num + 11; // num과 x의 변수의 주소 차이는 44이므로 +11 입력 *p = 30; // &num + 11 = &x 이므로 *(&x) = 30; == x = 30; 이다. printf("== change 함수 시작 ==\\n"); printf("&num : %ld\\n", (long)&num); printf("== change 함수 끝 ==\\n"); } // 수정가능지역 끝 int main(void) { int x = 20; // s..
[멋쟁이사자처럼 Back-End School 1기] Day 8. 포인터, Git, Linux명령어, Java실습 C언어 포인터 &i : 변수의 주소 반환 ❗주소의 값이 큰 이유 : RAM의 가장 큰 구간부터 데이터가 쌓이기 때문 → 지역변수는 Stack으로 쌓여 아래(가장 큰 메모리 크기) 부터 채워진다. 같은 객체 내 지역변수의 (가상)메모리 주소는 비슷하게 나온다. - 먼저 넣은 변수 주소의 값이 더 크다. → 메모리를 효율적으로 사용해야 하기 때문에 옆으로 넣는다. * : 해당 메모리 주소로 간다~ - int* p : int변수의 주소가 들어간다. - 메모리의 주소로 이동한다. int* p 의 size는 8byte이다. - 모든 포인터 크기는 8byte - CPU워드마다 크기는 달라진다. p = &a; - p는 a의 주소를 가진다 근처에 있는 주소를 가진 변수 2개 있으면 그 변수의 주소를 모두 다 외울 필요..
[멋쟁이사자처럼 Back-End School 1기] Day 7. 컴퓨터 공학, 포인터, Java 컴퓨터 공학 CPU구조 Control Unit : 매니저 ALU : 계산 Register : 기억 L3 < L2 < L1 < Register, 속도 오름차순) 레지스터의 종류 프로그램 카운터 : 현재 실행중인 소스코드 라인의 위치 기억 → 순차적으로 샐행된다. 명령어 레지스터 : 현재 실행중인 명령어를 실질적으로 가져온다. 메모리 주소 레지스터 : 목표(타겟) 메모리 데이터 레지스터 : 타겟에서 가져온 데이터 or 타겟에 넣을 데이터(결과, 복사본) 어큐뮬레이터 : 계산값 정보의 단위 정보 : 데이터 + 처리 bit : 정보의 기본 단위 워드 : CPU 레지스터 단위 16bit CPU의 워드 : 16bit 32bit CPU의 워드 : 16bit → CPU의 1워드 만큼 레지스터에서 메모리 주소 사용 ❗ ..
[멋쟁이사자처럼 Back-End School 1기] Day 6. C언어 함수, FLEX, DOM, BOM, JQuery C언어 기초 함수 매개변수를 사용해서 여러 입력에도 유연하게 함수를 사용할 수 있다. 함수 안에서 계산된 결과를 받고 싶을때 사용. 기본형 - 리턴타입 함수명(매개변수) { return // 함수가 끝남을 의미, 전달 값 } → 함수 정의 - return은 한번만 실행된다. - 리턴타입에는 return 으로 전달할 값에 맞춰 선언한다. → void는 리턴값 미지정 함수명은 동료가 봤을 때 함수의 행동이 어떤 것인지 유추될 수 있도록 작명한다. 행위자들은 사라지고 결과만 남는다. 실습 ASCII CODE - 문자는 존재하지 않음 → ASCII코드로 숫자를 문자로 변형 FLEX 참고 : https://flexboxfroggy.com/#ko flex container (= 연못) : display: flex로..
[멋쟁이사자처럼 Back-End School 1기] Day 5. CS, 조건문, 실습 CS 기초 현대적 컴퓨터의 기본 구조 - CPU와 메모리 분리 → 폰노이만 컴퓨터 구조 : 입력장치와 출력장치를 나누고 기억할 수 있는 메모리와 CPU를 나누자!) 컴퓨터 메모리의 기본 구조 - HDD : Sequential Access(돌면서 순차적으로 데이터를 가져온다.) → 속도가 느리고, 발열이 심하며 소음이 심하지만, 데이터 유실에 안정적이다. SSD : Random Access(데이터들이 랜덤으로 저장되어 있을 수 있다.) → HDD보다는 데이터 유실에 덜 안정적이다. => 방전이 되어 데이터가 날아갈 수 있다. → 데이터를 연속적으로 받아올 때 HDD보다 효율이 떨어진다. 조건문 실습 while문 - while(조건) { 처리할 식 } - 변수를 설정과 변수의 증감을 따로 처리해줘야 한다. ..