나는 여태껏 살면서 1년동안 지속적으로 무언가를 해본적도 없고, 기술 개발 블로그 플랫폼을 이용해보기는 커녕 일반 블로그도 해본적이 없다. 그래서 나에게 앞으로의 여정은 정말 더디고, 숨이 벅차고, 어디로 가야할지도 모르게 될 것이 분명하다.
날짜-JavaProject-프로젝트이름-번호 첫번째 프로젝트 이름: 가위바위보 게임 설명: 맨위의 가위바위보 그림이 슉슉 바뀌다가 아래에 있는 가위 바위 보 중 하나를 클릭하면 위의 그림과 아래의 그림 중 승자를 알수있는 게임. 게임을 다시 하고싶으면 맨 오른쪽하단
오늘은 윗 부분의 가위바위보를 AnimationDrawable 을 통하여 0.2초마다 바뀌게 하는 작업을 했다.
오늘은 리셋버튼을 구현했고, 우선 디폴트로 세개의 버튼 중 하나를 클릭하면 가위버튼이 나오게 해놓았다.오늘의 코멘트: 아 나는 내가 속한 조직의 업무를 조금 할 줄 아는 것 뿐이였지 개발의 ㄱ자도 몰랐구나..
오늘은 가위바위보 결과를 TextToSpeech를 통해 음성으로 나타내주는 작업을 하였고,(android 개발자 사이트 참고)Random 함수를 통해 컴퓨터와의 가위바위보 대결을 구현했다.(숫자부여)리플레이 버튼, 가위바위보 버튼 실행시 각각 비활성화, 활성화 작업도
두번째 프로젝트이름: 몬스터 게임설명: 이유: 가위바위보 게임에서 커스터마이징한 기능을 가진 게임을 만들어보고싶어서.데드라인: 201213(일)
몬스터 게임 두번째 날오늘은 ui로는 바뀐게 없어 스샷을 올리진 않았다.확률이 각기 다른 몬스터볼을 클릭했을 때 2초후 결과를 내뱉는 작업을 진행하려 했다.처음에는 wait, replay 이미지뷰를 지정했으며확률을 지정하기 위해서 Math.random() 를 이용하였고
개요: 가위바위보와 몬스터 프로젝트를 진행하는 것을 보시던 실장님께서 이건 안드로이드 앱 개발과 더 관련이 있지 자바를 언어적으로 써볼수있는건 아닌것 같다고 판단하시고 과제를 주심.마침 나도 '이건 자바가 아니라 앱 개발같은데..' 라고 생각하며 '그래도 끝까지 진행이
오늘은 쉬는날이다.아침부터 컨디션이 좀 안좋더니 업무하는 내내 집중도 잘안되고 업무 내용에도 생각대로 안되는 부분이 생겼다.집와서 휴식을 취했고, 그래도 뭔가 찔려서코딩 관련 유튜브 영상를 조금 보고 개발자들의 브이로그도 봤다.그 중에 '코드라이언' 이라고 프로그래밍
음.. 처음부터 뭘 해야할지 감이 안잡혔던.. 하하..그래서 어제 프로젝트 분석하던걸 이어서 해봤고, 하나하나 간단하게 맛을 봐야겠다는 생각이 들었다.고정값인 그래프부터 얼른 맛봐야겠다 싶어서 어제 찾다가 보던간단한 자바용 차트 라이브러리인 xchart jar를 다운받
git repository를 새로 파고브랜치도 이전과는 다른 방식으로 따봤다.근데 역시나 처음 설정하는데 아니나 다를까 "remote: Invalid username or password. fatal: Authentication failed for\~~"이런 문제가 있
오늘은 개찰구!개찰구의 형태부터 잡아야했는데,10개의 개찰구가 그때의 상황에 따라서 변해야했다 (가변성)서치해보다가 queue, stack 을 찾았고Deque라는 큐와 스택의 특성을 둘다 가진 녀석이 있었다. (예전에 과제하다가 본적있는 녀석)지금 상황에서 얘가 적절하
주말이라 오랜만에 늦잠을 자고 집안일을 하고 쉬다가프로젝트 시간이 되어 작업을 시작했다.어제에 이어서 개찰구를 설계하려고 했고,어떤 Deque를 써야 좋을까 보다가"ArrayBlockingQueue" 라는 녀석을 보고 '와.. 얘다' 싶었다.멀티쓰레드로도 사용할 수 있
오늘은 Blocking Queue를 이용한 멀티쓰레드 예제를 진행할 예정이다.개찰구 - 유동인구를 컨트롤하기 위한 수단으로 쓰일것으로 예상중이다.Blocking Deque 를 사용하기 전에 Queue 에서 나온게 Deque 이므로 Blocking Queue 를 사용하려
오늘은 어제 진행한 예제를 다시 봤다.멀티쓰레드로 동작하는 Producer 와 Consumer를 이해하긴했는데..문제는 이걸 어떻게 개찰구에 적용해야할지 의문에 빠졌다..우선 여러가지 구조를 가지기 전에 서치해본 결과로는 해당 cpu의 수만큼 멀티쓰레드를 돌릴수있는거고
어제에 이어서 이해한 멀티쓰레드 예제를 개찰구로 변환해서 사용해보기로 했다.어제는 멀티쓰레드에 어떤식으로 적용시켜야 할지 헷갈렸는데,오늘은 대략 감이 왔다.in out 하나씩 짜본다고 가정했고,in 과 out 개찰구는 둘 사이의 영향을 받지 않는 다는 전제하에 멀티로
어제 멀티쓰레드 안에 in out 개찰구 두개를 구현했다면오늘은 10개의 개찰구를 표현하고 싶었다.8개의 in 2개의 out처음에는 '멀티쓰레드를 cpu 수만큼 돌릴 수 있다고 했는데 이걸 어찌할까..?' 하면서 이곳저곳 돌아다니며 서치를 했는데.씁..? 다시보니 안돌
작업하던 blockingQueue 브랜치에서 main으로 병합했는데, 역시 아니나 다를까인텔리제이에서 <decompile .class file bytecode version 56.0> 에러를 뱉었다.음.. 1시간 30분 넘게 서치 중인데 지금도 문제점을 모르겠다.
오늘도 이것 저것 서치하면서 여러 관문에 들어갔고, read-only / 소스트리 병합 외부도구 안열림 / could not find or load main class등등.. 여러 에러가 나의 발목을 잡았다.계속 알아보니 무슨 소리인지 대략 감은 잡았지만 해결은 하지못
간단하게 정리하면 1\. 그래프에서 시간+인구 값을 가져온다.2\. 가져온 값을 개찰구 컨트롤 하는 곳으로 보낸다.3\. 최상의 효율성을 알아낸 뒤, 개찰구 컨트롤을 진행한다.물론 아직 그래프와 개찰구 구현이 완벽한건 아니지만, 서서히 맞춰가며 구현하려 한다.개찰구 컨
어제 저녁먹고 잠시누웠는데 일어나보니 새벽.. 피곤했나보다일어나서 작성중이다 ㅋㅋ선택정렬을 구현해봤고, 선택 정렬의 시간 복잡도가 왜 O(N^2) 임을 봤는데 제곱이라는 특성을 생각했을 때 처리해야할 데이터가 많을 수록 많아지기때문에 시간이 매우 많이 걸린다는 것이였다
오늘은 어제에 이어서 버블정렬을 구현해볼 예정이다.버블정렬 또한 시간복잡도는 O(N^2) 였으며 효율적이지 않았다.시간복잡도는 선택정렬과 같지만 버블 정렬이 더 효율적인 면에서 떨어졌다. 이유는 계속해서 원소들의 값을 비교하며 자리를 바꿔주기 때문이였다. 정렬 알고리즘
오늘은 삽입정렬이다.삽입정렬은 정렬된 어레이를 유지하며 진행하는데,새로운 숫자가 삽입되면 정렬된 어레이 안에서 자기의 자리를 찾아가며 정렬한다.역시 시간복잡도는 O(N^2) 인데 왜 3개의 정렬 모두 이 복잡도일까?왜 효율성이 안나오는거지..?알고리즘 이해하는 시간들이
오늘은 병합정렬!병합정렬은 특이하게 각각 그룹을 이루고 모인 그룹들이 하나의 큰 그룹을 만들어서 하나의 정렬이 되는 알고리즘이다.함수를 만들고 재귀함수를 이용한다는 점에서 다른 알고리즘과 달랐고다른 알고리즘도 함수를 만들어서 활용해야겠다는 생각을 했다.나중에 재작업 할
오늘은 어제에 이어서 병합정렬 두번째 시간이다.오늘 구현은 완료했고, 어떤 원리로 어떻게 돌아가는지는 알았다.병합정렬은 시간복잡도가 O(nlogn) 으로 퀵정렬과 함께 많이 언급되는 정렬 알고리즘이라고 한다.다만.. 머릿속에서 뭐랄까 톱니바퀴 굴러가듯이 이해는 되질 않
오늘은 병합정렬 마지막 날이다.지난 이틀에 걸쳐 구현했던 것들을 다시보고 가볍게 진행했다.다시 보다가 이러한 정렬 알고리즘들이 개찰구 컨트롤하는데에 얼마나 도움이 될까.. 잠깐 생각했지만 어차피 언젠가는 봐야했던 영역이고,앞으로 업무하는데 있어서도 쓰일수있으니깐.. 역
오늘은 퀵정렬이다.퀵정렬은 정렬의 자존심이라고 한다.그리고 pivot을 잡는 점에서 특이하다.피봇을 잡는 방식이 크게 두가지로 나뉘는데, (피봇을 어떻게 잡느냐에 따라 어떤 퀵정렬인지로 나뉠수 있음.)랜덤방식과 한쪽 영역을 피봇으로 잡는 방식이 있다.오늘은 맨 오른쪽에
오늘은 퀵정렬_랜덤피벗 을 할 차례다. 그렇지만 오늘은 몸 컨디션이 별로 안좋은 관계로.. 간단하게 셋팅만 하고 개념알아보고 마무리 할 예정이다.
역시 단점을 보완한건 더 복잡하다.랜덤 피벗 난수 선언, 하나의 임시 저장공간을 이용한 로직 추가.정렬 알고리즘을 지난 며칠동안 계속해서 봐와서 그런가 막 그렇게 어렵진 않았지만 최근 진행했던 알고리즘 중에서는 헷갈린 편이였다. (지정 피벗 퀵정렬에서 추가된 느낌이여서
휴식.2020년 해를 마무리하며 생각정리 겸 해낸것들, 있었던 일들을 되짚어보는 시간을 가졌다.
개찰구 프로젝트는 초기에 그래프와 개찰구를 셋팅해주고 그래프의 값이 개찰구컨트롤러로 들어가 최상의 효율성을 내는 개찰구컨트롤 값을 가지고 나와 개찰구를 컨트롤한다. 여기서 나는 [최상의 효율성] 을 알아내기 위해 알고리즘을 경험해봤고 알고리즘 구현을 진행하면서 느꼈
오늘은 프로젝트 프로토타입을 만드려고 기본 셋팅 작업을 newmain 브랜치에 진행했다.우선 전에 그래프 관련하여 구현했던 것이 있는 graph 브랜치를 머지했고,그래프 값 초기 설정시에, 프로젝트(newmain)에 라이브러리 추가해주는 작업을 또 진행해줬다.(머지하면
오늘은 개찰구 정리와 initGuichet() 을 설정해주려 했지만,진행하다보니 개찰구와 컨트롤러를 설정하려면 받아오는 인자값이 있어야하는데 그 값은그래프에서 나오기때문에 Map을 전역으로 설정해서 받아와주는 작업을 먼저 진행했다.(x, y)이렇게 나오는 값이이런식으로
오늘은 일요일이고밖을 나간지 정~말 오래되어서좀있으면 우울증오겠다 싶을정도였다.(실제로 요즘 너무 우울한 나날들을 보내고 있었다. 주기적인 산책이라도 해야겠다.)웬일인지 아침 일찍 눈이 떠졌고 오늘은 밖으로 나가야겠다고 생각이 들었다.청계산 등산을 갈까? 아니면 현대백
오늘은 월요일. 연휴가 끝나고 올해의 첫 근무였으며 요즘 업무에 잘 안되는 포인트가 있어 마음이 좀 걸린다.어제 말했던 것처럼아침에 일어나서부터 ~ 자기전까지의 기록을 하고있다.내용은 시간과 무엇을 했는지이다.지금까지의 기록을 보면 확실히 시간을 살릴수 있는 부분이 있
오늘은 화요일.퇴근하고 너무 피곤해서 잠깐 누웠는데 알람을 못듣고 계속 자버렸다;;자고 일어나면 컨디션이 좋아야하는데 어제 오랜만에 운동도 하고 이것저것 했나 컨디션이 좋질 않았다.오늘은 169페이지~ 174페이지.클래스에서 인스턴스 구분자와 초기화 하는 법을 통해메소
오늘은 자바의 이름규칙과 문제07-1을 구현했다.이름규칙이야 뭐 평소에 자주 사용해서 익숙했다.문제 07-1 은생성자를 포함하는 클래스의 정의 에 관한 문제였는데,내용은쉬운 예제였지만 역시 구글의 힘을 빌리지않고 혼자 해낸다는 것은정말 뿌듯하다.다 구현하고 답안과 비교
오늘은 08 챕터, 패키지와 클래스 패스를 들어갔다.178페이지 ~ 193페이지내용은 많지만 이론위주라서 가볍게 읽혔다.클래스 패스(자바 가상머신이 클래스파일을 찾는 경로)에 관한 내용과 각종 정의.패키지란 뭘까?간단히 말하면 클래스를 묶는 수단이다.클래스를 묶음과 동
8일과 9일은 급한 개인일정이 생겨 TIL를 진행하지 못했다.
오늘은 7일에 이어서 챕터09, 정보 은닉 그리고 캡슐화에 들어간다.오늘은 09-1 정보 은닉에 관하여 공부했다.자바에서 말하는 '정보'는 '인스턴스 변수'를 뜻한다.결국 정보은닉이란 인스턴스 변수를 숨긴다는 뜻이다.책에서는 원의 넓이를 구하는 클래스에서 반지름의 선언
오늘은 어제에 이어서 챕터 09-2 접근 수준 지시자를 들어간다.201~210페이지.접근 수준 지시자에는 4개의 형태가 존재한다.public, protected, private, default하지만 클래스 정의, 인스턴스 변수와 메소드 대상으로 나뉘는데.클래스 정의:
오늘은 캡슐화를 진행한다. 2일에 걸쳐 진행할 예정.캡슐화는 앞서 진행한 '정보 은닉'과 더불어 객체지향 기반의 클래스 설계에 있어서 가장 기본이면서 중요한 원칙 중 하나라고 한다.클래스 안에 '무엇을 넣을까'에 대한 이론을 제시하는 내용이라고 하는데..간단하게 한줄
오늘은 어제에 이어서 캡슐화 2번째 시간!두가지를 살펴볼건데,1\. 포함 관계로 캡슐화 완성하기2\. 문제포함 관계로 캡슐화 만들어진 예제 코드를 봤다.우선 포함 관계란, 한 클래스가 다른 클래스의 인스턴스를 멤버로 가지는 관계를 포함 관계라고 한다.사실 코드를 봐도
오늘은 챕터10 클래스 변수와 클래스 메소드를 들어간다.218페이지~224페이지까지 진행했고,이론 위주고, 알고있던 내용이라 잘 읽혔다.다만 용어는 좀 짚고 넘어갈 필요가 있다고 생각한다.간단하게 요약하자면클래스 내에 선언된 변수 앞에 static 선언을 붙이면 이건
음.. 오늘은 사실 휴식이 아니라 잠들어버렸다..20년 12월 01일 부터 시작해서 21년 01월 15일까지총 46일동안 진행했는데 5일 쉬었다.그럼 9일 진행하면서 하루씩 쉰건데.. 좀 더 hustle 하자!
오늘은 드디어 이 책이 왔다..!항상 코딩을 하면서 라고 생각했었는데 이 책이 나의 그런 생각을 일깨워줬으면 좋겠다!20년 7월 최신 도서이고, 책의 두께도 그리 두껍지 않아서 부담되지는 않을것 같다. 하하오늘 진행할 부분은 static을 붙인 클래스 변수에 이어서 클
오늘은 또 다른 용도의 static 선언과 문제를 풀 차례이다.static선언은 이전 시간에 봤던 것 처럼 클래스 변수와 클래스 메소드 외에 다른 용도로도 사용된다는데,보고 신기했다.왜냐면 내가 여태껏 처음보는 형태였는데 'static 초기화 블록' 이였다.이 녀석은
오늘은 챕터11 메소드 오버로딩에 대해 들어간다.메소드 오버로딩이란 간단하게한 클래스 내에 동일한 이름의 메소드를 둘 이상 정의하는 것은 허용되지 않는다.그러나 매개변수의 선언이 다르면 가능한데, 그것을 '메소드 오버로딩' 이라고 한다.조건이 있는데1\. 메소드의 이름
오늘은 this 키워드를 이용한 다른 생성자 호출에 대해서 알아본다. 어제에 이어서 코드를 다시 본다면, 두번째가 this 키워드를 이용한 생성자이다. 여기서 this는 '오버로딩 된 다른 생성자'를 의미하며 즉 위의 문장은 rnum과 0을 인자로 받는 생성자의 호출
오늘은 원래 챕터14를 진행하려했지만두번째 책인 자바 코딩 기술향상 책을 진행하려한다.그 이유는, 오늘 업무에서 베테랑 팀원분과 같이 코드 리뷰를 했는데.진행하면서 길을 잃었기때문이다.내가 작성한 코드인데 말이다.물론! 처음 진행하는 것 치고 내 나름대로 잘했다.잘 돌
오늘 자바의 두 책을 어떻게 운영할까 생각해봤다.A. 윤성우의 열혈 JAVA 프로그래밍B. 똑똑하게 코딩하는법 자바 코딩의 기술A책은 주로 기본 개념에 대해 집필된 책이고,B책은 더 나은 코딩의 길을 제시해준다.A를 주 책으로 계속 진행하고 A가 당일 질리거나 새로운
오늘은 어제에 이어서 상속과 생성자에 대해서 알아본다.예를들어, 상위클래스인 Man / 하위클래스인 BMan 이정의되어 있는 코드가 있다고 치자.main 코드에서 BMan의 인스턴스가 생성되면 그 안에 Man 클래스의name 변수도 클래스의 멤버가 되는데 문제는 초기화
오늘도 역시 어제에 이어서 상속에 관하여 진행한다.하위 클래스에서 상속한 상위 클래스의 생성자를 호출할 때, 명시적으로 호출하는 방법에 대하여 알아본다.명시적으로 호출하지 않으면 인자를 받지 않는 생성자가 자동으로 호출되며명시적으로 호출하는 방법으로는 super 키워드
오늘은 상속과 생성자의 호출 문제와 14-2 클래스 변수, 클래스 메소드와 상속에 들어간다.먼저 문제는Car -> HybridCar -> HybridWaterCarCar는 가솔린으로HybridCar는 가솔린과 전기로HybridWaterCar 가솔린과 전기와 물을 동시에
오늘은 챕터15 클래스의 상속2: 오버라이딩 에 들어간다.두 클래스가 있는데, 이 두 클래스를 상속해야 도움이 되는 상황과 상속해도 도움이 되지 않는 상황이 있다.기본적으로 IS-A 관계 라는 것이 성립해야 상속의 후보로 고려할 수가 있다고 한다.is a => ~은 ~
오늘은 어제에 이어서 좀 더 개념적으로 오버라이딩을 알아본다.어제 내용을 한줄 요약하면(한줄이긴해,,)그리고 또CheeseCake이 Cake를 상속할 때CheeseCake cake1 = new CheeseCake();Cake cake2 = cake1;이건 가능.Cake
오늘도 어제에 이어서 오버라이딩에 들어간다.오늘은 오버라이딩의 일반화와 호출방법 등을 알아본다.이번챕터에서는 오버라이딩의 개념적인 부분에 초점을 맞추고, 다음 챕터에서 응용에 들어간다.일반화는 그냥 어제와 같이 main 코드에서 상위클래스, 하위클래스1, 하위클래스2를
어제 궁금했던 그 참조변수 형은 아직도 이해가 안되긴한다..오늘 출근했을 때 다른 팀원분들께 여쭤볼껄 ㅠㅠ디버그도 걸어보고 했지만 잘 모르겠다..;나중에 생각나면 다시 보는것으로 하자..어제에 이어서 하려고 했지만\~~오늘은 A책이 살짝 질려서 B책(자바 코딩의 기술)
아구.. 잠깐 개인일정이 생겨서 일정 처리하고 난 뒤, 잠깐 잠들었는데일어나보니 오늘 10시.. 의도치 않은 휴식이였다.
오늘은 챕터15의 마지막 시간 instanceof 연산자에 대해서 알아보겠다.instanceof 는 써본적이 없는 연산자인데,참조변수가 참조하는 인스턴스의 '클래스'나 참조하는 인스턴스가 '상속하는 클래스'를 묻는 연산자이다.이렇게 사용할 수 있다.ca가 Cake의 인
오늘은 어제에 이어서 상속의 3번째 챕터에 들어간다.상속의 마지막 챕터이다.상속이 도움이 되는 상황을 소개하며 시작하는데,인맥 관리 프로그램을 예로 든다.대학 동창과 직장 동료의 {이름, 전공(or 부서), 전화번호 정보 저장} 를 관리하는 것이 목적인 코드인데.예로
2월이 왔다!벌써 1월이 갔다니.. 시간 빠르다.. 좀더 허슬할 한달이 되자.어제 상속챕터를 끝내고 오늘부터 새로운 챕터에 들어간다.흠.. 그런데 생각해보니 중간에 리뷰를 할 시간이 없었다.복기는 너무 중요하다.복기라는 단어는 바둑을 다 두고 나서 승패가 나뉜 뒤, 다
하.. 오늘은 어제 못끝낸 업무의 연장선이랄까..여러번 얘기하긴 했지만 내가 지금 프로젝트를 하나 맡아서 진행하고 있는데.아직 실력이 미숙하다보니 간단한 문제라도 싹- 진행을 못하는 것 같다.여태껏 그래왔지만 어느 한 포인트에서 진척이 없으면 그 날 남은 하루는 좀 .
오늘은 인터페이스 예제 코드를 진행한다.github: https://github.com/jeong-jaehyeon/JavaProject/blob/javaExercise/src/PrinterDriver.java'인터페이스'의 사전적 의미는 '연결점/접점'으로 둘
오늘은 어제에 이어서인터페이스 간 상속, 디폴트 메소드, static 메소드, instanceof 연산을 쭉쭉 알아보겠다.어제 진행하면서 인터페이스 간에 상속이 있으면 복잡할 것 같다고 했는데, 오늘 예제는 보니오히려 복잡함이 아니라 편리함과 효율성을 가져다준다고 느꼈
오늘도 역시 어제에 이어서 인터페이스 중 디폴트 메소드를 진행한다.이런 상황이 발생할 수 있다.이미 정의되어 있는 다양한 프로젝트에 수십개의 인터페이스가 있는데, 모든 인터페이스에 최소한 한개 이상의 추상 메소드를 추가해야 하는 상황.이러한 문제를 어제처럼 '인터페이스
라섹수술을 하고 다시 왔다!시력도 0.1 에서 1.0으로 올랐다!!그렇지만 아직 모니터를 보면 눈이 많이 피로해져서 되도록이면 모니터는 사용안하려고 한다.업무는 어쩔수없지만 TIL는 책을 위주로 하고 포스팅은 요약해서 좀 적게 하려고 한다.그래서 오늘은 B책을 진행했다
어제에 이어서 B책을 계속 진행하겠다.야근을 좀 해서 눈이 쫌 피로한 상태다.오늘만 인공눈물을 6개 썼다 ㅠ\_ㅠ1.3 <불 표현식을 직접 반환>이런 코드가 있다.i가 음수이거나 s가 null이거나 s가 ""의 빈 문자이거나.셋 중 하나라도 해당되면 false를
오늘은 1.4 불 표현식의 간소화를 진행한다.여러 조건문이 합쳐진 불 표현식을 대부분 이해하기도 어렵고 합치기도 어렵다고 한다.어제 배운 불 표현식 직접 반환처럼 표현하면 하나로 압축되긴 하지만,만약 조건식들이 많아진다면 오히려 더 불편한 상황을 만들수있다.왜냐면 길이
오늘도 계속해서 B책이다.일반적으로 자바 초보자가 처음 접하는 예외가 NullPointer 예외라고 한다.나도 업무시에 NullPointer를 자주 접한다.먼저 예제 코드를 보자면,간단하게 특정 코드만..자, 우선 내 기준에 내가 몰랐던 메서드는isDirectory()
어제의 NullPointer에 이어서 오늘은 switch 실패에 대해 알아본다.예제 코드를 바로 보자면,switch 문을 사용할 때는 항상 주의해야 할 점이 있다.위 코드의 authorize()는 매개변수를 검증하고 null 참조를 확인한다.java API에 있는 편리
오늘도 계속해서 B책을 진행.1.7<항상 괄호 사용하기> 차례이다.다행히도 나는 항상 괄호를 사용하는 습관을 가지고있다.(if문에서의 한줄이라도..)앞서 진행했던 switch문을 if문 여러개로 바꾼 코드이다.그런데 중괄호를 사용하는 나로써는 딱 한줄의 문제가 보
오늘은 1.8 <코드 대칭성 이루기> 를 진행한다.코드의 이해도가 얼마나 중요한지 앞의 챕터들을 진행하면서 알게되었는데,조건 분기를 대칭적 방법으로 구조화하면 코드를 쉽게 이해하고 파악할 수 있다고 한다.나중에 누가 유지보수를 하든 기능을 더 빨리 간편하게 찾을
오늘부터는 2장에 들어간다.2장에서는 1장에서 논했던 기초 내용을 뛰어 넘는 레벨 업 내용이라고 한다.더 향상된 수많은 자바 언어 개념과 코드 스타일 측면을 함께 살펴볼텐데,가능하면 자주 자바API를 다룬다고 해서 기대된다.2.1 <매직 넘버를 상수로 대체>프로그
어제에 이어서 예제 코드를 더 향상 시킬수 있는 방법에 대햐여 더 알아보겠다!어제 진행했던 것처럼 매직넘버보다 상수가 훨씬 낫다.하지만~ 옵션을 모두 열거할 수 있다면 자바 타입 시스템이 제공하는 방법이 훨씬 낫다고 한다.위의 코드에서 speedPreset은 아직 정수
오늘은 for 루프문 대신 for-each 을 사용하는 것을 배워본다.사실 나는 for 루프문만 쓰고 each를 쓰는 것이 어색하다.위 코드에서는 checks라는 List 자료 구조를 순회합니다. for 루프를 사용하며 인덱스 변수인 i로 checks를 순회하는데, 매
오늘은 순회하며 작업하는 내용을 살펴본다.실제로 업무 시에 자주 사용했던 내용이며, 어떤 한 리스트를 돌며 찾거나 제거하는 내용을 자주 사용하곤 했다.코드에서는 항상 배열이나 리스트를 비롯해 다양한 자료 구조를 순회하는데,자료구조를 바꾸려면 조심해야한다. 프로그램이 충
ㅋㅋㅋ 오늘은 제목이 길다.순회하며 계산 집약적 연산하지 않기.코드를 보니 내가 모르는 것들이 많아 2회로 나눴고, 그렇게 어려운 내용은 아니지만 이해가 필요하다.자료 구조를 순회할 때는 수행할 연산 유형에 주의해야하는데,계산 집약적 연산을 수행하면 성능 위험이 쉽게
어제에 이어서 진행한다.먼저 오늘 진행하기에 앞서, 정규식과 Pattern, matches를 선행 학습해봤다.참고한 url: https://coding-factory.tistory.com/529자, 이 코드를 실행하면서 자바는 String 표현식인 regex를
부득이하게 일정이 생각보다 늦어져 TIL을 진행하지 못했다 ㅠㅠ