본문 바로가기

반응형

Programming

(163)
[CS50] 컴파일링 C코드를 실행하려면 컴파일링 작업이 필요하다. 컴파일의 전체 과정은 네 단계로 나누어 볼 수 있다. 코드를 작성한 후 make나 clang을 사용해서 프로그램을 실행할 때 아래 네 개의 단계를 거친다. 전처리 컴파일링 어셈블링 링킹 전처리(Precompile) #으로 시작되는 C 소스 코드는 전처리기에서 실직적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려준다. 예를 들어 #include는 전처리기에게 다른 파일의 내용을 포함시키라고 알려준다. #include 코드가 있다면 전처리기는 stdio.h 파일의 내용을 포함시킨다. 컴파일(Compile) 전처리기가 전처리한 소스 코드를 생성한 후 컴파일 작업을 수행한다. 컴파일러라고 불리는 프로그램은 C 코드를 어셈블리어라는 저수준 프로그래밍 언어로 컴파..
[CS50] C언어 C언어 기초 C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다. C와 같은 프로그래밍 언어는 구체적인 문법(Syntax)을 이용하여 프로그램을 작성할 것을 요구한다. 문법이란 프로그램이 동작하는 문장(코드)을 작성하기 위해 필요한 단어와 기호들을 어떻게 활용할 것인가에 대한 규칙이다. 특정 프로그래밍 언어를 사용해 프로그램을 작성 및 실행시키고 싶다면 해당 프로그래밍 언어가 요구하는 문법 요구사항에 맞추어 코드를 작성해야 한다. #include int main(void) { printf("hello, world"); } 위 코드는 "hello, world"를 출력하는 C 프로그램 예시이다. #include는 이 프로그램이 stdio.h라는 파일 안에 들어있는 미리 작성된 암수들에 접근할 수 있도록..
[Java] 자바 스트림(stream) Java8에 추가된 stream은 연속된 정보를 처리하는데 사용된다. 여기서 '연속된 정보'라는 것은 주로 컬렉션을 말한다. stream은 다음과 같은 구조를 가진다. 스트림 생성 : 컬렉션의 목록을 스트림 객체로 변환한다. 스트림 객체는 java.util.stream 패키지의 Stream 인터페이스를 말한다. stream() 메소드는 Collection 인터페이스에 선언되어 있다. 중개 연산 : 생성된 스트림 객체를 사용하여 중개 연산 부분에서 처리한다. 이 부분에서는 아무런 결과를 리턴하지 못한다. 그래서 중개 연산(intermediate operation)이라고 한다. 종단 연산 : 마지막으로 중개 연산에서 작업된 내용을 바탕으로 결과를 리턴한다. 그래서 이 부분을 종단 연산(terminal ope..
[Java] static 키워드 유무에 따른 변수 값의 변화 static 키워드가 있는 변수는 클래스 변수 static 키워드로 생성된 변수는 해당 변수가 있는 클래스 로드 중에 초기화되며, 애플리케이션 실행 내내 메모리에 머물러 있다. 따라서 초기화 과정 없이 해당 변수, 메소드에 접근할 수 있다. static 키워드가 있는 변수를 클래스 변수라고 부른다. 아래 코드는 더하기(add) 기능을 수행하는 Calculator 클래스를 정의한 것이다. 클래스 내부에 static 키워드의 int 타입의 result 변수를 선언했다. 선언한 static 변수를 add 메소드 결과값으로 리턴하도록 코드를 구성했다. public class Calculator { public static int result = 0; public int add(int num1, int num2)..
[CS50 2019] 2진법, 정보의 표현 컴퓨터 과학(Computer Science)은 문제를 해결하는 과정이다. 어떠한 입력(input)이 있고, 입력에 따른 결과(output)가 있다. 그리고 입력과 출력의 사이에 컴퓨터 과학이 존재한다. 즉 어떠한 문제(입력)가 있고, 문제에 대한 해결 과정 후에 문제의 답(결과)이 도출된다. 문제 해결에 앞서, 입력과 출력을 어떻게 표현할지에 대한 합의된 표현 방식의 사용이 필요하다. 2진법 컴퓨터는 0과 1로만 데이터를 표현하는 2진법으로 대화한다. 일반적으로 사용하는 10진법(0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개의 기호로 표현하는 것)과는 상반된다. 컴퓨터는 0과 1만으로 글자, 사진, 영상, 소리 등 다양한 것들을 저장할 수 있다. 2진법에서 각 자리수는 2의 거듭제곱을 의..
[Java] Enum 클래스 어떤 클래스가 상수(constant)로만 만들어져 있는 경우 반드시 class로 선언할 필요는 없다. 이럴 때는 enum 키워드로 열거형 클래스를 생성할 수 있다. 자바 1.5 이전에 사용했던 열거 패턴 Enum은 자바 1.5부터 등장했다. 그 이전에는 상수값을 정수 열거 패턴, 문자열 열거 패턴 등으로 표현했다. public class Calculator { private static final String PLUS = "+"; private static final String MINUS = "-"; private static final String MULTIPLY = "*"; private static final String DIVIDE = "/"; } 열거 패턴의 단점은 클라이언트와 함께 컴파일 되..
[IntelliJ] 한글 깨짐 수정 IntelliJ로 junit 테스트 수행 중 한글 깨짐 문제 발견 Helop - Edit Custom VM Options로 이동. 또는 Shift 두번 누르고 "vm" 검색하면 이동할 수 있다. -Defile.encoding=UTF-8 추가 IntelliJ 재시작 후 확인. 그래도 안되면 IntelliJ 설치 폴더로 이동 -> idea64.exe.vmoptions 파일 열어서 -Defile.encoding=UTF-8 추가한다. IntelliJ 설치 경로가 기억나지 않는다면 IntelliJ가 설치되면 작업 표시줄에 생성되는 JetBrains ToolBox를 통해 설치 경로를 확인할 수 있다.(Tool actions -> Settings)
Google Java Style Guide 해당 포스트는 아래 문서를 번역한 것입니다. 번역이 아닌 개인 공부를 목적으로 하기 때문에 본인이 이해한 대로 작성했고, 본문 내용 이외에 부가 정보 또한 추가했습니다. 혹시 잘못된 정보가 포함되어 있는 경우 즉시 댓글로 관련 내용을 언급해 주시면 대단히 감사하겠습니다. https://google.github.io/styleguide/javaguide.html#s1.1-terminology Google Java Style Guide 1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java sour..

반응형