본문 바로가기

반응형

전체 글

(141)
백준 1003번: 피보나치 함수 C++ 코드(DP, 다이나믹 프로그래밍) //1003 #include using namespace std; struct zeroandone{ int zero; int one; }; zeroandone array1[41]; int used[41] = {0,}; zeroandone fibo(int n){ zeroandone temp; if(used[n] == 1){ return array1[n]; }else if(n == 0){ temp.zero = 1; temp.one = 0; return temp; }else if(n == 1){ temp.zero = 0; temp.one = 1; return temp; }else{ zeroandone temp1 = fibo(n-1); zeroandone temp2 = fibo(n-2); temp.zero = ..
3-Tier Architecture 3계층구조 서론 컴파일러 이론에 대해서 정리하다가 한번 좀 심하게 아팠다. 이후 여러 약속 다녀오고 하고 개강도 하고 많이 바빠져서 블로그를 열심히 하려다가 실패하고 한동안 놓게 되었다. 그러다가 갑작스럽게 블로그를 키게 된 이유를 늘어놓자면, 그냥 원래 공부한 것을 정리하는 용도로 블로그를 했었기에 갑자기 강의 듣다가 튀어나온 3-Tier Architecture를 공부하고 정리하기 위함이다. 이전에 mtv, mvc 패턴 등 웹 디자인패턴에 대해 잠깐 공부했었는데 이 아키텍쳐 얘기를 듣고 어? 상당히 기본개념같은데 이런게 있었나 싶어서 다시 코딩을 좀 공부해야겠다고 마음을 먹었다. 3-Tier Architecture 3계층구조(3-Tier Architecture)는 아키텍쳐 패턴으로, 이름 그대로 3가지의 계층을 ..
컴파일러 공부하고 개발하기 #03 - 파서 제너레이터, 스캐너 제너레이터, 컴파일러 컴파일러 서론 공부를 계속 이어가려했는데, 이사하면서 인터넷 신청을 늦게해서 시간이 꽤 걸렸다. 오늘은 파서 제너레이터에 대해 다뤄볼 것이다. 파서 제너레이터 파서(parser)를 만들기 위해서는 동일한 코드가 반복이 되고, 이는 상당히 번거롭고 귀찮은 일이다. 이를 위해 파서를 생성하는 프로그램이 파서 제너레이터이다. 파서 제너레이터와 스캐너 제너레이터, 컴파일러 컴파일러는 모두 동일한 말이고 동일한 프로그램이다. 파서 제너레이터에도 종류가 있다. LR 파서 제너레이터 LALR 파서 제너레이터 LL 파서 제너레이터 파서 제너레이터는 다룰 수 있는 문법의 범위에 따라 나누게 된다. LR 파서 제너레이터 문법의 취급 범위: 넓다 속도: 평균적 LALR 파서 제너레이터 문법의 취급 범위: 비교적 넓다 속도: 평균적 ..
컴파일러 공부하고 개발하기 #02 - 소스 코드 해석, 어휘 해석, 구문 해석, 의미 해석, 의미값 서론 오늘은 소스 코드 해석에 대해 다룰 것이다. 책 기준으로는 이전에 책에서 제공하는 소스코드의 간단한 일부 리뷰가 있는데, 그냥 #00과 #01 편에서 말한 순서를 코드로 나타낸 것이기에 패스하도록 하겠다. 그리고 책에서도 전처리 단계가 꽤나 복잡한 관계로 빠져버렸다. 소스 코드 해석에서 고려해야 할 점 우리가 코드가 있을 때 그냥 위에서부터 줄줄이 해석한다면 편하겠지만 우린 '연산자의 우선순위'를 고려해야 한다. 5 + 4 + 2는 컴퓨터 입장에서 (5 + 4) + 2로 받아들이게 되지만, 4 + 2 * 8은 4 + (2 * 8)로 해석해야하기에 이것이 연산자의 우선순위이다. 또한 함수명이 일반적으로 선언되어있는 것과 문자열 안에 함수명이 있을 때의 취급 또한 다르기에 이러한 점들을 고려해야한다. ..
컴파일러 공부하고 개발하기 #01 - 구문 해석, 의미 해석, 중간 표현의 생성, 코드 생성 서론 지난번에 이어서 이번에는 전처리와 어셈블 사이의 중간 과정인 컴파일에 대해 다뤄볼 것이다. 전처리, 컴파일, 어셈블, 링크를 전체를 묶어 컴파일 과정이라 부르긴 하나, 진짜 컴파일은 전처리와 어셈블 사이의 컴파일이 진짜 컴파일이다. 전 글의 '(좁은 의미의)컴파일'이다. 컴파일의 4단계 Syntax anlayzing(구문 해석) Semantic analysis(의미 해석) IR, intermediate representation(중간 표현의 생성) Code generation(코드 생성) Syntax anlayzing(구문 해석)이란? 소스 코드를 해석해서 컴퓨터가 이해하기 쉬운 형식으로 바꿔줘야한다. 그렇다면 '컴퓨터가 이해하기 쉬운 형식'은 무엇일까? 바로 구문 트리이다. 이후 구문 트리에 대해..
컴파일러 공부하고 개발하기 #00 - 전처리, 컴파일, 어셈블, 링크 서론 일단 이 글은 필자가 아오키 미네로우 작가님의 '컴파일러 구조와 원리' 라는 책을 읽고 공부하며 진행한다. 주로 이 책의 진행의 포커스가 맞춰져있고, 그냥 이 책을 조금 요약하고 정리하고 거기에 나의 느낀점 등을 정리해서 쓴다고 보는 게 좋을 것이다. 이번 글에서는 여러 용어와 컴파일 과정에 대해 다룰 것이다. 컴파일러의 정의 컴파일러란 프로그래밍 언어의 소스 코드를 다른 형식으로 변환하는 소프트웨어를 뜻한다. 그리고 우린 이 작업을 컴파일이라고 부른다. 최근에 C언어를 공부한 사람이라면 여러 IDE를 통해 배웠을 것이다. 거기서 코드를 실행시키며 문법을 배울텐데 그 경우 빌드 버튼을 누르자마자 콘솔창이 실행되고 그 콘솔창에 자기가 만든 코드가 띄워질 것이다.(비주얼 스튜디오를 안쓴지 꽤 되서 햇갈..
2023 광운대 소프트웨어우수인재전형 정보융합학부 면접 후기 서론 필자는 소프트웨어 특성화고에 다니고 있음을 알립니다.. 그리고 광운대는 유사 떨어진 상태입니다.(1차합격 후 2차에서 예비 12번) 개인적으로 일기 같은 느낌으로 남기는 것도 있지만, 앞으로 내년이든 내후년이든 누군가에게 혹시나 도움이 되고자 후기를 남깁니다. (사실 공부하다가 생각 정리할 겸 씀) 과정 1차합격(당시 경쟁률 1:15.9) -> 면접 -> 예비번호 12번 내신 등급 3.9x 그나마 수학이 좀 높고 국어나 다른 것들이 좀 낮았음. (사실 이런 꼴아박은 내신에 1차합격이면 대단한 것 아닐까?) 세특 1학년 1,2학기 2학년 1학기 까지 세특에 신경을 안썼으나 2학년 2학기부터 나름 신경써서 2학년 2학기-3학년 1학기는 세특 내용이 나쁘지 않음. 1학년 1,2학기 2학년 1학기 세특은 ..
베이스어스 D02 pro 가성비 헤드폰, 헤드셋 솔직한 리뷰 서론 필자는 이 제품을 7개월 정도 사용한 상태이다. 겨울에 귀마개 용으로 사서 여름에 가끔 쓰는 정도로 쓰고 있었으나 리뷰를 미루다 미루다 약간의 짬을 조금씩 내서 쓰려한다. (거의 1주에 3줄 쓰는 정도) 제품 설명 베이스어스라는 기업이 조금 생소한 이들이 있을 것이다. 베이스어스는 중국 it회사로 주로 충전기, 차량용 용품, 케이블로 유명하다. 그런 회사에서 나온 헤드폰이기에 조금 불신하는 이들이 있을 것이다. 특히나 충전기 쪽에서 불량 이슈가 좀 많아서 그런 점도 있고. 일단 스펙은 이렇다. 블루투스 5.0 40mm 유닛 450mAH 내가 생각하는 장점 확실히 저렴한 가격 매우 저렴하다. 요새 적당히 쓰고 다닐만한 블루투스 헤드폰 사면 보통 10만원은 무조건 넘어가는 것 같은데 이 제품은 그에 비..

반응형