전체 글

공부한 내용을 정리합니다
Programming/Java

Java기초개념정리 (2)객체 지향 프로그래밍 OOP

객체 지향적으로 생각한다는 것 객체 지향적으로 생각한다는 것은 현재 가진 문제에 연관된 여러 요소를 확인하려 노력하는 것이다. 즉, 처음 생각할 것은 관련된 객체가 무엇이 있는지. 그리고 객체에 관련된 요소들을 확인한 다음에 내가 사용하고자 하는 것이 무엇인지 확인한다. 예시1) 비행 비행기 항공사, 제조사, 타입, 포지션 등 ← 데이터 이륙하다, 착륙하다 등 ← 행동 승무원 이름, 주소, 소속 등 ← 데이터 탑승수속하다, 안내하다 등 ← 행동 탑승객 이름, 주소, 국적 등 ← 데이터 체크인하다, 걷다, 구매하다 등 ← 행동 예시2) 온라인 쇼핑 시스템 클래스 고객 이름, 주소 등 로그인, 로그아웃, 물품선택, 계산 등 장바구니 상품 등 상품추가, 상품삭제 등 상품 이름, 가격, 재고 등 주문, 금액 변..

Programming/Java

Java기초개념정리 (1)메서드, 클래스, 패키지

정보처리기사 공부하면서 정리한 내용입니다. 메서드 ReturnType nameOfTHeMethod() { //메서드 선언 //메서드의 역할 } 반환타입 ReturnType 반환하고 싶은 타입이 없으면 void, 정수형이면 int 등. void sum(int a, int b); int sum = sum(1, 10); //ERROR 위와 같은 경우 sum은 반환타입이 void라 반환값이 없기에 에러가 뜬다. 메서드에서는 값을 단 하나만 반환할 수 있음에 주의하자. 메서드 콜 nameOfTHeMethod(); System.out.println("Call"); 콘솔에 무언가를 출력하는 메서드 System.out.println() System.out.println()를 입력하여 메서드를 실행하는 것 = 메서드 콜..

Review

커리어 스킬

인생의 방향을 설정할 때 처음부터 충분한 시간을 들여 철저하게 자신의 생각을 점검해보는 사람은 많지 않다. 먼저 이 질문에 충분한 시간을 들여 생각해보자 현재 나의 위치는? 어떤 분야의 개발자가 되고 싶은가? 어떤 유형의 소프트웨어 개발자가 되고 싶은지 구체적인 목표 세우기 계획 세우기는 성취하고자 하는 목표에서 시작해 거꾸로 되짚어오면 된다 위와 같은 내용으로 시작하는 개발자 비전서 포지션의 책. 처음 시작하는 사람부터 이직을 준비하는 사람까지 전반적인 조언으로 가득 차 있다. 인상 깊었던 빠르게 배우는 10단계 학습법과, 개발자가 되기 위해 알아야 할 것에 대해서 소개한다. 그러고보니 후자는 정보처리기사 자격증을 따면서 상당부분 기본 지식을 습득하게 되어 다행이라고 생각한다. 저자가 워낙 유쾌해서 많..

ETC

Notion / 노션 날짜 관련 수식 모음 : 이번주, 오늘 포함

이번 주인지 확인하는 수식 노션 공식 기능에 이번주 필터가 생겼는데 제대로 동작하지 않는 문제가 있어서 결국 수식을 사용하기로 했습니다. prop("날짜")는 이번주(일요일부터 월요일의 범위)로 지정되어 있으며, 범위 날짜가 아닌 경우에도 아래 수식을 적용할 수 있습니다. formatDate(prop("날짜"), "w") == formatDate(now(), "w") 일년치만 사용한다면 이렇게만 해도 충분합니다. 그러나 다음 해로 넘어갈 경우 제대로 동작하지 않는 문제가 있습니다. formatDate의 w는 해당하는 주차의 숫자만 표시해주기 때문입니다. 즉, 연도 정보를 갖고 있지 않습니다. formatDate(prop("날짜"), "Yw") == formatDate(now(), "Yw") 따라서 위와 ..

ETC

BAT / 윈도우10 작업 스케줄러로 특정 프로그램 블루투스 스피커 설정하기

윈도우 10 소리 설정에서 음악 프로그램만 블루투스 스피커 출력으로 설정해놓았더니 컴퓨터 부팅 시 블루투스 스피커 출력으로 적용하려면 한번 기본 스피커를 블루투스로 바꿨다가 다시 되돌리는 수고를 해야해서 그 과정을 작업스케줄러로 자동화한 이야기 (길다) 발단 윈도우 10에서 소리 설정 > 앱 볼륨 및 장치 기본 설정에 들어가면 각 앱 별로 출력 장치를 설정할 수 있다. 기본 출력은 이어폰, 음악 프로그램인 AIMP는 블루투스 스피커로 출력이 지정되어있다. 사유는 블루투스 스피커로 일상 BGM을 켜 놓고 필요한 사운드는 이어폰 or 노트북스피커로 듣기 때문이다. 그런데 이 경우, 컴퓨터를 부팅하고 시작 프로그램에 등록된 음악 프로그램이 실행됐을 때 (위 캡쳐대로 블루투스 스피커로 설정되어 있음에도 불구하고..

Review

혼자 공부하는 얄팍한 코딩지식

얄코님 유튜브 채널을 추천받아 보다가 책도 내셨다는 걸 알았다. 워낙 입문자가 개념을 처음 접하기 좋게 비유를 기똥차게 해주셔서 고민없이 책을 봐보기로 했고 정말 잘 한 선택이었다. 어렸을 때부터 컴퓨터와 친해서 이것저것 들어본 건 많은데 구체적으로 뭐가 뭔지 제대로는 모르는, 이것저것 궁금한 나같은 사람에게 특히 추천하고 싶다. 정보처리기사 시험 전에 개념 잡기에도 추천한다. 개발자가 뭐 하는 사람인지부터, IT 용어들과 프로그래밍 용어들까지 폭넓게 훑어볼 수 있다. 특히 운영체제를 푸드트럭으로 비유한 게 굉장했다. 유튜브로 책을 보충할 용도의 강의도 무료로 공개하고 계시니 이쪽도 같이 병행하면 더더욱 도움이 된다. https://www.youtube.com/watch?v=AT9lKhq2ULE&list..

Review

프로그래머의 길, 멘토에게 묻다

그야말로 개발자 비전서 같은 책. 현재 독자의 상황과 문제를 제시하고 그에 상응하는 해결책을 제안하는 특이한 구성으로 이루어져있다. 해당 상황-문제-해결책을 '패턴'이라는 세트로 묶어서 명명하기에 그것을 활용해서 자신에게 맞게 활용하면 좋을 것 같다. (개인적으로 '패턴'보다는 '전술'이 더 괜찮은 명명이지 않을까 한다.) 패턴이 서로 연관되어있는 경우가 많아서 책으로 찾아보기 번거로울 것 같아 여러가지 방법을 생각해봤는데, 하나는 책에 하나하나 인덱싱을 하는 것이고, 다른 하나는 노션으로 메모해 해당 패턴에 링크를 다는 것이다. 나는 후자를 선택하여 메모했고, 한 페이지에 내용을 넣은 다음 다른 패턴이 언급될 경우 블록 링크를 걸어 바로 해당 항목으로 갈 수 있게 해두었다. 개발자 세계에 입문하려고 자..

Self-Growth

Tool / 집중을 위한 크롬 확장프로그램, Leechblock

인터넷 창을 켠 다음 무심코 네이버에 접속하는 습관이 있다는 걸 시계부를 쓰면서 깨닫게 되었다. 지금 굳이 확인하지 않아도 되는 메일을 확인하고, 그러다보면 옆에 있는 리빙판 글도 확인하고 그러다보면 30분은 순식간에 지나간다. 그런 딴짓을 막기 위해 이런저런 방안을 강구하다가 찾은, 지금까지 잘 사용하고 있는 크롬 확장프로그램 Leechblock에 대해 소개한다. 모든 기능을 무료로 이용 가능하며 따로 광고도 붙어있지 않음에도 기능이 강력하다. 국내에는 Leechblock에 대해 상세하게 소개된 글이 없어서 필요한 사람들이 활용할 수 있었으면 하는 마음에 포스팅하게 되었다. 영어로 되어있지만 파파고 번역이나 검색을 통해 문제 없이 사용 가능하다. https://chrome.google.com/webst..

Computer Science/Database, SQL

데이터베이스 분포도

분포도가 낮을수록 좋다는데 왜 성별은 분포도가 좋지 않다는 거지? 라는 의문을 해소하기 위해 알아본 자료를 정리해보았다. Selectivity 선택성, 분포도 양쪽으로 번역되는 것 같다. 개인적으로는 선택성이라는 번역이 해당 내용에 대한 이해를 돕는 것 같다. 이유는, 이 개념이 필요한 이유가, 인덱스를 구성하기 위해 한 테이블에서 어떤 속성을 선택할지를 결정하기 위함이기 때문이다. 선택성이/분포도가 좋다는 말은 내가 원하는 값을 쉽게 찾아갈 수 있다는 뜻이다. 이를 위해서는 특정 컬럼의 데이터가 테이블에 평균적으로 분포되어 있는 정도를 알아야 한다. 산식 해당 컬럼 기준으로 distinct(중복제거)된 count / 전체 count col1 컬럼 : 전체 건수 100건, 값들은 모두 A, B 의 2가지..