본문 바로가기

전체 글62

C/C++ call by value, 포인터(call by reference), 메모리 접근 동작 방식 C/C++의 call by value, call by reference 포인터 = call by reference, 그 외 타입은 call by value 라고 그냥 외우는 경우들도 많은데, 이런 암기로는 C/C++ 언어의 특성과 동작 방식을 제대로 이해하기 힘들다고 생각합니다. 먼저 C언어의 변수가 가지고 있는 정보는 변수에 할당된 메모리의 첫번째 주소, 그리고 타입(type)이며 항상 모든 타입 변수에 대해 기본적으로 call by value로 동작하고 있습니다. 그리고 call by reference가 가능하도록 연산자를 제공할 뿐입니다. C언어의 call by value 변수가 의미하는 메모리 영역의 값을 그대로 가져옵니다. 예로 아래 예시의 var 변수는 첫주소 100000000와 long lo.. 2021. 10. 5.
C/C++ call by 포인터, 소멸자, 깊은 복사자가 필요한 이유, 메모리 누수에 대한 고찰 요즘 유행하는 대부분 언어들의 경우 프로그래밍을 할 때 메모리 누수의 고려를 줄이기 위해 특정 타입의 변수에 대해서는 강제로 call by reference 접근만 허용하며 언어의 자체 엔진이 메모리 관리를 합니다. ex) GC(Garbage Collection), Reference Counts 기법 등등 다만 C언어의 경우 변수간의 할당 작업은 구조체 일지라도 모두 call by value 방식이기에 구조체 내부에 포인터가 섞여 있는 경우 메모리 누수에 대해 신경쓸 부분이 많습니다. C/C++의 call by value, 포인터 메모리 동작 방식 https://asung123456.tistory.com/43 C/C++ call by value, 포인터(call by reference), 메모리 접근 동.. 2021. 10. 4.
pycharm inspection 문법 검사기 설정 (python2 문법 검사 끄기) ---------------------------------------------잡담--------------------------------------------------- 파이썬 코딩시, 딱히 별다른 추가 플러그인이나 설정이 없어도 앵간한 기능을 제공해주는 pycharm을 자주 애용합니다. vscode도 이것저것 기능 설정하고 추가하면 강력하고 쓰기 편하지만 귀찮다고 할까나.. 사실 저는 pycharm쓰면 프로젝트 빌더나 configuration 대부분 기능들을 사용하지 않습니다.. 일단 장기간에 걸친 거대한 파이썬 프로젝트를 하는 것도 아니고, 끽해야 절대 만줄이상 넘어가지 않는 프로젝트뿐이고 파이썬 개발 업무를 매일매일 하는 것도 아니고 어차피 개발하는 맥북과 실제로 앱을 실행하는 os, 경로 .. 2021. 6. 8.
패스워드 암호화/인증(해싱) 과정 & 중간 패킷 탈취에 대한 오해 사전 참고: https://asung123456.tistory.com/55 [컴퓨터 보안] 해싱과 암호화 해싱이란? input으로 들어온 값이 해싱 함수를 거쳐 일정한 길이의 output으로 나오게 됩니다. 일정한 길이의 output이기 때문에 해싱의 종류에 따라 output으로 나오는 경우의 수는 한정됩니다. 통상 asung123456.tistory.com 패스워드 암호화 보통 패스워드는 암호화되어 다뤄지기 때문에 Client에서 암호화(혹은 해싱)되고(https 포함)하여 전송한다. 패스워드 인증 서버에서는 패스워드를 평문으로 다루지 않기 때문에 해싱된 패스워드를 DB에 저장하게된다. (salt를 섞기도하고) 중간 패킷 탈취에 대한 오해 일반적인 패스워드의 경우 Https와 같은 프로토콜을 통한 암호.. 2021. 4. 29.