TIL(Today I Learned) 45

Day.16 OS(운영체제)

OS 특강을 들으면서 많은 생각을 했다. 우선 전공자의 입장에서 한번 이상은 들어본 단어들을 설명하는데 나름 잘 이해하고 있는 부분도 있었지만, 그렇지 못한 부분들도 많았다. OS 관련 지식들을 딮하게 학습하지 않고 그냥 학점을 채우기위한, 시험을 위한, 전공필수라서 들어야 하니까? 그 정도라 생각했는데, 백엔드 개발자라고 하면 성능과 관련된 이슈들을 생각하기 위해 OS 지식들과 친해져야 한다. 그래서 오늘 부족했던 부분들을 직접 Catch하며 따로 공부해야 할 내용들을 특강 타임때 체크해놓고, 구글링을 하면서 채워넣고있다. TIL 이 부분에 적는 것이 아니라 블로그의 다른 카테고리에 따로 정리중이다. (진행중) 어느덧 3주차 주말이 다가왔다. 다음주부턴 Java로 미니 프로젝트를 진행한다고 하셨는데, ..

Day.14 타임어택 및 웹 애플리케이션

알고리즘 타임어택이 있던 당일 금일 9시부터 11시까지 Python 또는 Java를 이용해서 문제를 해결 솔직히 알고리즘에 자신이 없었지만 한번 풀어보자는 생각을 했다. 문제를 확인해보니 엥?.... 쉬운데?... 난이도는 쉬워서 수월하게 문제를 풀 수 있었지만, 프로그래머스를 처음으로 이용해봐서 계속 런타임이 났다.. 그 이유는 코드 전체를 쓰는 것이 아니라, 로직부분만 구현했으면 됐다는... :( 로컬에서는문제가 없는데 계속 런타임 오류가 나서 시간을 많이 소모했다. 문제의 난이도는 프로그래머스 0단계 수준 조금만 생각하면 충분히 누구나 풀 수 있는 문제들이었다. 나는 기존에 자주 사용하던 Java를 이용해 문제를 해결했고, 4문제의 문제가 출제되었는데 4문제를 다 해결했다. 문제는 다음과 같다. (..

Day.13 알고리즘 학습 (회문 문자열)속 toUpperCase

내일배움캠프에서 제공하는 알고리즘 강의의 목차를 기준으로 같은 내용의 알고리즘의 문제를 푸는 방식이나 강의에서 주는 문제를 Python이 아닌 Java를 이용하는 방식을 사용해서 문제를 접근하고, 해결하려고 노력하고 있다. 항상 문제를 접근할 때, 문제를 해결하기 위해 어떤 논리적인 생각을 해야하며, 이 속에는 알고리즘과 관련된 혹은 기본 베이스가 어떤 것이 있을까? 생각하며 문제에 접근하고자 한다. 항상 알고리즘 문제를 풀 땐, 옆에 종이와 펜을 필수로 둔다. 주어진 문제를 분석하다 보면 필요한 내용들을 종이에 적고, 논리적인 부분들을 직접 해보면서 문제에 접근하다보디 시간이 많이 걸리긴하는데, 문제를 이해하고 해결하면 만족한다... 금일 해결한 문제는 다음과 같다 1. LinkedList의 끝에서 K..

Day.12 재귀함수 그리고 졸업 프로젝트

오늘은 학부 마지막 종착역이자 엔드포인트인 졸업작품 프로젝트 발표회가 있었다. 그래서 공부에 많이 집중할 수 없었는데, 뭔가 아쉬우면서도 최종 피드백을 듣고 엔드포인트를 돌려고하니 4년의 시간이 주마등처럼 지나가면서 묵었던 체중이 내려가는 것 같았다.. 직접 서비스를 기획하고 만들고, 피칭 준비까지 팀장의 무게는 나름 잘 견뎠다고 생각했다... 본론으로 넘어가서 금일은 많은 공부를 못했다...... 오늘 공부한 내용은 재귀함수에 대해 공부했다. 알고리즘의 단골 문제.... 알고리즘 강의 2주차 8에 있는 재귀함수를 간단하게 공부하고 백준 문제로 이 것을 적용해서 풀어보았다. 우선 재귀함수가 무엇이나? 재귀는 자기를 호출하는 프로세스를 가지는 함수인데, 이 알고리즘을 이용해 다양한 문제를 해결 할 수 있는..

Day.10 Binary Search(이진 탐색) - 백준 1920번(수 찾기)

오늘 들어야 할 알고리즘 강의 chapter가 이진탐색 (binary Search)였다. 이미 개념에 대해선 잘 알고있어서, 개념을 이해하는데 큰 어려움은 없었지만, 이 것을 구현하려고 하니 정말 시간이 많이 소모됐다. 기존에 진행하는 Python 알고리즘 강의의 방식대로 python으로 구현하는 것이 아니라 같은 내용을 java로 구현하려고 한다. (백준을 이용) (구현 방식에 대해 생각하고, 직접 그 방식을 구현하려고 많은 시간을 썼지만, 이렇게 연습하다보면 구현 능률이 올라 갈 것이라 믿어 의심치 않는다...) 직접 구현을 하면서 강의를 따라가려고 하니 생각보다 강의 속도가 안나서 고민이다 어떻게 해야할지.. (팀원분이랑 이 부분에 대해서 이야기를 했는데, 그냥 잘 모르겠으면 해설보고 이해를 하는 ..

Day.9 자료구조 그리고 알고리즘 언어의 선택(Linked List)

어제의 연속선상으로 기초 자료구조와 알고리즘을 공부 다만 고민되는 것이 있다면, 파이썬 vs 자바 자바를 썩 잘하는 것은 아니지만, 익숙함 파이썬, 성능이 좋고 좋은 라이브러리가 많음, 익숙치 않음 어떤 언어를 가지고 직접 구현을 해보면서 따라갈지 고민이 된다. ( 오늘은 파이썬 강의를 가지고 자바로 바꿔 학습 진행 ) 알고리즘의 공부 방향에 대해서도 고민중.. (빨리 이 고민을 해결해야 할텐데) 오늘의 학습 정리 및 궁금증 1. Linked List 기차를 생각하면 가장 이해하기 쉽다. (앞 칸과 뒷 칸의 연결) 각 노드, 그리고 데이터와 포인터 => 각 노드들은 데이터와 포인터를 가지고 있다. ArrayList에 비해 데이터의 추가, 삭제가 용이하지만 따로 인덱스가 없어서 특정 요소에 접근하기 위해 ..

Day.8 Basic algorithm langu- python

오늘도 무난하게 공부했다. 알고리즘 시작 (Java와 C가 아닌 python으로 구현하려고 하니 왤케 버벅거리는지...) 알고리즘을 풀 땐, 역시,, 종이와 펜 오늘 강의를 보면서 정리를 해야겠다고 생각한 내용은 다음과 같다. 1. Python isalpha (완료) 일단 isalpha는 내장함수, 문자열에 공백이 있으면 안된다. 위에 해당하는 조건이 없다면? True 반환 아니면 False 이거 말고도 숫자인지 확인할 수 있고, 알파벳 또는 숫자인지 확인할 수 있는 내장함수가 있었다 isdigit = 숫자인지 확인 (기호 포함시 false, 문자도, 공백도 동일) isalnum = 숫자 또는 알파벳인지 (기호 및 공백 포함시 false 반환) 2. 비트맵 자료구조 (애매) 금일 2~4시까지 노드 튜터님..

Day.7 Python 내가 궁금했던 지식 채우기

나는 파이썬을 정말로 간단하게만 배웠었다 대학교 (1학년 전공같은 전공아닌 전공?) 그 마저도 GUI를 이용한 간단한 수업이었는데, 그 떄 이후로 거의 벽을 쌓고 살았고, 그나마 공모전? 준비하면서 파이썬을 잠시 써본 것 같다. 그래서일까 파이썬에 대한 지식이 많이 부족했는데, 오늘 파이썬 문법 기초를 수강하며 새로 얻게 된 지식을 글로써 남기고자 한다. (변수나 뭐 이런 완전 기초적인 내용은 제외하고 내가 잘못 알고 있었던 혹은 새로 알게 된 지식에 대해서만 정리) 1. 파이썬은 흔히 우리가 사용하는 변수의 자료형을 명시하지 않는다 (명시를 하지 않아도 알아서 잡아주는게 편리하긴 했다.) 근데 어째서? 보통 파이썬처럼 변수의 자료형을 명시하지 않는 언어를 '동적 타입 언어'라고 한다 (그럼 자연스레 정..

Day.6 돌 다리도 두들겨보고 건너라(Java)

첫 주가 끝나고 본격적인 Java와 Python, Algorithm 주차의 시작을 알렸다. 오늘의 학습 내용 역시 크게 어렵거나 부담스럽게 느껴지지 않았다. 다시 한 번 직접 정리함으로써 내가 알고 있는 사실에 대해 점검하자. 1. 접근 제어자 ( Access modifier) 왜 사용할까? = 정보의 은닉 (클래스 외부에서 직접적인 접근을 허용하지 않는 멤버를 설정, 정보 은닉의 구체화) 4형제로 구성된 접근 제어자 public, private, default, protected 1. private = 외부에 공개 x, 외부에서 직접 접근 x , public 메소드를 통해서 접근 가능 = 보통 public 인터페이스를 직접 구현 x, 클래스 내부의 세부적인 동작 구현에 사용 = 같은 클래스 내 2. p..