728x90 분류 전체보기302 [C언어] 포인터를 사용하는 진짜 쉬운 이유. [C언어] 포인터를 사용하는 진짜 쉬운 이유. 포인터는 초급 개발자의 뇌를 심각하게 트레이닝 시킨다. 이중 삼중으로 들어가는 포인터에 메모리 구조를 상기시켜야 하고, 이게 어디들어가는지, 누구를 참조하는 지 참 복잡하고 헷갈릴 때가 많다. 현재 나 또한, 그 과정 어디엔가 있는 것 같다. 이번 포스팅에서는 이전까지 다루어왔던 메모리 구조, 포인터의 정의에서 나온 말들을 하나씩 디스크 조각모음을 하여 왜 우리가 포인터에 대해서 알고, 어떻게 활용해야 할 지를 이야기 해 볼 것이다. C언어는 개발자가 원하는 대로 메모리를 관리할 수 있다고 누구든 이야기를 한다. 그런 이점을 활용해서 메모리를 아낄 수 있고, 효율적인 프로그램을 개발자가 만들 수 있다고 많은 사람들은 결론을 짓는다. 그렇다. 그렇기 때문에 '.. 2022. 6. 29. [Java] Error와 Exception, 예외 처리 [Java] Error와 Exception, 예외 처리 에러는 숙명, 예외는 운명 초보 개발자에게 누군가는 이렇게 이야기를 한다. 숙명은 static한 것, 운명은 dynamic 한 것이다. 어떠한 것을 집어넣는다고 해도, 숙명은 바뀌지 않고, 운명은 내가 어떤 변수와 로직을 넣느냐에 따라 좌지우지 할 수 있다. 오류는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미한다. 개발자가 예측하여 방치할 수 없는 것이다. 위의 블루스크린도 그와 같다. 반면 예외는 개발자가 구현한 로직에서 발생한 것이거나 사용자가 이렇게 사용할 것이라고 생각 못하고 개발해놓은 것에서 발생된다. 개발자가 미리 방지할 수 있기 때문에, 상황에 맞게 예외 '처리'를 해주어야 한다. 1. 예외 클래스의 계.. 2022. 6. 29. [Java] 인터페이스의 다형성 [Java] 인터페이스의 다형성 인터페이스를 만들어놓고 클래스를 만들 때, 원래 설정해놓은 함수와는 다른 매개변수를 주고 싶다면...? 원래 2개를 설정할 수 있게 인터페이스에 써놓았는데, 매개변수를 3개 설정하고 싶다면 어떻게 해야할까? 메소드를 그대로 물려받았기 때문에, 원래 함수를 구현하지 않고도 오버로딩이 가능할까? 라는 생각에 이번 포스팅을 진행하게 되었다. 긴 이야기 필요없이 바로 인터페이스를 만들어보고 인터페이스를 implements한 클래스를 만들어보겠다. 1) 인터페이스 package exercise; public interface Calculate { int sum(int v1, int v2); } Calcutate라는 인터페이스를 만들었고, 그 안에는 sum()이라는 함수가 들어있다... 2022. 6. 28. zsh, bash 그리고 shell script zsh, bash 그리고 shell script 쉘은 리눅스에서 명령어와 프로그램을 실행할 때 사용하는 인터페이스이다. 커널과 사용자 사이에 위치하면서 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 돌려주는 아주 고마운 친구이다. 쉘은 커널에서 분리된 별도의 프로그램이어서 다양한 종류의 쉘이 존재한다. 각각의 쉘 들은 제공하는 기능이 살짝식 다르다. 1) bash(배쉬) 리눅스의 표준 쉘이다. 우분투와 페도라도 배쉬 쉘을 사용한다고 한다. sh(Bourne Shell, 유닉스 쉘의 오리지널)을 전신으로 두고 있어서 sh와 호환되어 쓰일 수 있다. 맥 OS X, 그리고 윈도우에도 이식이 되었으며 mac의 경우 최근 기본 제공을 zsh로 하고 있다. 배쉬는 프로그래밍 언어이긴 하지만, 유닉스 운영체제의.. 2022. 6. 28. [GIT] 버전 관리의 개념과 필요한 명령어 알아보기 [GIT] 버전 관리의 개념과 필요한 명령어 알아보기 깃의 가장 큰 존재이유 중 하나인 버전 관리. 버전을 관리하기 위해서는 로컬에서 진행해야 하는 과정이 있고, 원격으로 쏘기 위해 해야하는 과정이 있다. 그 전에 위의 그림부터 살펴보자. 로컬 영역에서는 세 가지로 분류를 해서 볼 수 있다. working area / : 버전으로 만들기 전 단계(수정한 파일들) staging area / : 수정 한 것 중 선별된 단계(버전을 만들려고 하는 파일들) repository : 버전으로 만들어진 파일들 이렇게 보면 되는데, 하나의 공간을 올려가면서 commit에 대한 준비를 하고 그 다음 로컬 repository에 올라갔을 때, push를 할 수 있게 된다. 막연히 그냥 폴더 안에 있는 것을 push 해서 깃.. 2022. 6. 28. [Linux] POSIX CLI 명령어 [Linux] POSIX CLI 명령어 portable operating system interface command line interface 평범한 컴퓨터의 사용자라면 터미널을 사용해서 컴퓨터를 조작할 일이 많이 없다. GUI OS가 브라우저 실행 파일까지 친절하게 안내해주고, 그 창을 띄워줘서 인터넷에 접속할 수 있게 해주니까. 또한 어떤 텍스트 문서를 만든다고 할 때에도 윈도우는 메모장, 맥은 텍스트 편집기를 활용해서 내용을 입력하고 저장을 하면 파일이 만들어진다. GUI 환경이 아닌 터미널에서 명령어로 파일을 조작하는 이유는 무엇일까? GUI 환경이 아닌 곳에서 활용할 일이 있기 때문이다. 서버를 조작한다던지 할 때 사용이 되는 것이다. 그렇다면 이러한 대용량의 서버들은 GUI 환경을 쓰지 않는.. 2022. 6. 28. 이전 1 ··· 30 31 32 33 34 35 36 ··· 51 다음 728x90