TIL(Today I Learned)
-
[TIL] 은행만들기 프로젝트 진행TIL(Today I Learned) 2022. 11. 24. 22:55
*20221124의 회고 오늘은 두번째 프로젝트의 본격적인 시작일이였다. 호텔 서비스를 구현하려 하였으나, 은행 서비스를 구현하기로 변경하였다. 오전중에는 다같이 클래스 다이어그램을 작성하였다. 초기 설계 은행 정보(멤버 변수): 계좌들, 고객들, 이름 동작(함수): 계좌 수정/삭제/등록, 고객 등록, 계좌 번호로 계좌 조회, 소유자 명으로 계좌 조회, 모든 계좌 목록 조회 계좌 정보(멤버 변수): 소유자 명, 계좌번호, 잔고, 은행 이름 동작(함수): 입금, 출금, 잔고 확인(소유주만 확인 가능), 거래 내역 기록, 모든 거래 내역 확인, 은행 이름 출력 고객 정보(멤버 변수): 이름, 소유 계좌 동작(함수): 소유 계좌 조회 거래 내역 정보(멤버 변수): 거래 일자, 거래 시간, 계좌번호, 입금/출금..
-
[TIL] 두번째 미니 프로젝트 시작 - 메모장 구현하기TIL(Today I Learned) 2022. 11. 23. 23:17
*20221123의 회고 오늘은 드디어 두번째 팀프로젝트가 시작되는 날이다. 걱정도 되고, 기대도 되고, 떨리기도 하고, 두렵기도 하였다. 오늘은 자바로 메모장을 만드는 실습을 하였는데, 이를 통해 객체끼리 코드상으로 어떻게 상호작용을 하는지 더 깊게 알 수 있었다. 그래서 자바의 객체지향적 프로그래밍에 대한 이해도를 높혀준 정말 의미있는 프로젝트 였다고 생각한다. 오늘 프로젝트의 전체적인 진행상황을 회고해 보자면, 우선 우리 팀원인 SB님께서 기존에 메모장을 구현해보신 적이 있으셨다. 그래서 SB님이 전체적인 가이드 라인을 제시해 주셨다. 먼저 클래스 다이어그램을 작성하였다. SB님이 막힘없이 클래스 다이어그램을 작성하시는 모습을 보고, 경험이 있다는게 정말 큰 재산이라는 것을 느꼈다. 아무튼 그렇게 ..
-
[TIL] 자바의 객체지향프로그래밍과 친해지기TIL(Today I Learned) 2022. 11. 22. 19:36
*20221122의 회고 오늘까지 해서 오전 9시부터 실시하는 자바 객체지향에 대한 실시간 강의가 끝이 났다. 객체지향에 대한 전반적인 이해에 아주 큰 도움이 되는 강의였다. 오늘은 객체지향 프로그래밍과 더불어 3-Tier Architecture에 대한 부분을 배웠다. 3 - Tier Architecture Presentation Tier 사용자 인터페이스 및 통신 계층 주요 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것 웹 브라우저, 데스크탑 애플리케이션, GUI 등 일반적으로 HTML, CSS, JS를 사용하여 개발됨 사람과 컴퓨터시스템 사이의 의사소통 매개를 의미함 Application Tier 애플리케이션의 핵심 계층 이 계층에서 수집된 정보는 특정 비즈니스 로직을 사용하여 데이터계층의 ..
-
[TIL] 재귀함수 마스터해버리기(?) + SOLID 원칙TIL(Today I Learned) 2022. 11. 21. 20:04
*20221121의 회고 오늘은 오전 9시에 객체지향에 대한 강의를 줌에서 실시간으로 들었다. 객체지향에서 꼭 알아야 하는 개념인 SOLID원칙에 대해서 배웠다. 예전에 스프링 강의를 수강하면서 SOLID 원칙에 대해 공부한 적이 있었다. 물론 스프링의 'ㅅ' 정도만 배우고 내배캠에 참여하게 되었지만, SOLID에 대해 처음 들었을 때는 멘붕 그 자체였던 것 같다. 아니 자바를 공부하면서 객체지향에 대한 개념을 드디어 좀 이해했고, 이제 객체 지향의 개념이 낯설지 않아졌는데, 또 SOLID원칙을 지키면서 객체지향 프로그래밍을 하라구?!! 정말....ㅎㅎ 공부는 끝이 없는 것 같다. 그리고 세상엔 많은 천재들이 있는 것 같다. 컴퓨터가 세상에 나온지 얼마나 되었다고 선생님들 께서는 여러가지의 이론과 용어들..
-
[TIL] 객체지향프로그래밍과 CS특강TIL(Today I Learned) 2022. 11. 18. 21:42
*20221118의 회고 오늘 오전에는 객체지향 프로그래밍에 대한 실시간 강의를 들었다. 강의에서는, 객체 지향이라는 개념을 좀 더 현실에 와닿게 설명해 주셨다. 객체 지향은 현실세계를 모방하는 것이 아닌, 현실세계를 창조하는 것이라 한다. 예를 들면, 현실세계에서는 커피가 스스로 양이 줄지 않는데, 프로그래밍을 할 때는 커피가 주체적으로 양이 줄어야 한다(?). 또한 카페 관련 프로그램에 대한 내용을 예로 들면서, 객체간의 상호작용에 대해 라이브 코딩을 진행하셨다. 실제 현업에서 프로그램을 개발 할 때 어떤식으로, 어떤 순서를 세워서 코드를 작성해 나가는 지 아주 조금 엿볼 수 있었다. 명사와 동사를 구분해서 키워드를 추출해 나가는 방식을 알게 되었다. 또한 객체는 책임과 역할이 또렷하게 분리될 수록 ..
-
[TIL] 그래프, DFS, BFS, 동적계획법.....반갑다....TIL(Today I Learned) 2022. 11. 17. 21:01
*20221117의 회고 오늘은 그래프, dfs, bfs 그리고 동적계획법에 대해 배웠다. 그래프 연결되어 있는 정점과 정점간의 관계를 표현할 수 있는 자료구조 비선형 구조 -> 연결 관계에 초점이 맞춰져 있다. (선형구조 -> 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있다. ex) 배열) 그래프를 컴퓨터에서 표현하는 방법 인접행렬 : 2차원 배열로 그래프의 연결관계를 표현 인접리스트 : 링크드리스트로 그래프의 연결관계를 표현 인접행렬과 인접리스트의 차이 ? -> 시간 vs 공간 인접행렬은 데이터의 접근이 빠른 대신, O(노드^2)의 공간만큼을 사용해야 함 인접리스트는 연결된 간선만큼 탐색해야 하므로 데이터 접근 시 O(간선) 만큼의 시간이 걸리지만, O(노드 + 간선) 만큼의 공간만 필요함 DFS(D..
-
[TIL] 타임어택 알고리즘, 트리, 배열로 이진탐색트리 구현TIL(Today I Learned) 2022. 11. 16. 20:45
*20221116의 회고 오늘은 오전 9시부터 11시까지 두시간동안 알고리즘 문제를 푸는 것으로 하루를 시작했다. 총 4문제가 출제되었는데, 프로그래머스의 코딩테스트 입문 단계 문제들로 구성이 되어 있어서 쉽게 풀 수 있었다. 딱 이 수준까지는 문제없이 풀 수 있는 것 같다! 여기서 이제 어려워지면 어렵다...ㅎㅎㅎ 아무튼 별 탈 없이 문제를 풀고 난 후, 어제와 이어서 오늘도 남은 알고리즘 자료구조 강의를 수강하였다. 오늘 배운 부분은 트리, 힙 부분이다. 개념적으로는 이해하는데 어려울 게 없었는데, 이진 탐색 트리를 구현하는 실습을 하면서 하루를 다 소비한 것 같다. 몇 번은 강의를 돌려 본 것 같다. 아직도 완벽히 이해했다고는 할 수 없고, 어렴풋이 알 것 같은 느낌이다. 이진탐색트리를 구현하고 이..
-
[TIL] Stack, Queue, HashTable 구현하기TIL(Today I Learned) 2022. 11. 15. 19:56
*20221115의 회고 어제 구현했던 연결리스트를 이용하여 오늘은 stack, queue, hashtable을 구현하였다. 구현하는 코드를 보고 한번에 이해하는 데는 어려움이 있었다. 그러나 두 번, 세 번 반복해서 보니 아직 안보고 직접 구현하는 건 자신 없지만, 코드를 보면서 이해하는데는 어렵지 않게 되었다. 스택, 큐, 해시테이블의 정의와 특징, 그리고 구현한 코드에 대해 정리해 보겠다. 스택(Stack) 한쪽 끝으로만 자료를 넣고 뺄 수 있는 자료 구조 Last In, First Out (LIFO) stack.push() : 스택에 맨 위에 데이터를 넣는다. stack.pop() : 스택의 맨 위에 있는 데이터를 꺼내어 반환한다(스택 사이즈 -1). stack.peek() : 스택의 맨 위에 있..