반응형

노트북으로 GitHub repository를 clone하려고 했는데 git명령어가 안먹어서 당황했네요 ㅜㅜ

 

git명령어를 사용하기 위해선 git을 설치 후 환경변수에 git을 추가해줘야 합니다.

linux, Mac 등등은 터미널에서 명령어를 사용하여 설치할 수 있지만

windows에서는 해당 방법을 모르겠어
GitHubDesktop을 설치 후 환경변수를 직접 등록하는 방식으로 하겠습니다.  

  GitHubDesktop 설치

desktop.github.com/

 

GitHub Desktop

Simple collaboration from your desktop

desktop.github.com

1. 사이트 접속

 

2. Download for Windows 클릭

3. 설치된 파일 실행

4. 완료

 

  환경변수 설정

1. 설치된 GitHubDesktop 우클릭 후 파일위치 열기 클릭

2. 폴더 이동 및 주소 복사

C:\상위폴더\GitHubDesktop\app-*.*.*\resources\app\git\cmd 
위와 같이 이동 후 해당 디렉토리 주소를 복사해주세요

3. 환경변수 편집 열기

내 PC - 우클릭 - 속성 - 고급 시스템 설정 - 환경변수 - 시스템 변수_path 편집

 

4. 복사한 주소 추가

5. 확인

터미널을 실행해 git --version 명령어를 입력했을때 아래와 같이 뜬다면 성공한것입니다.

반응형
반응형

인텔리제이를 사용해 토이프로젝트를 개발하고있었는데
언제부턴가 각종 경고표시가 안나오고 있었다..

해결방법을 찾다가 못찾아 무시하고 사용하고 있었는데 우연히 해결방법을 찾았다!!!!!

우선 아래 코드를 보면

65번 라인에 @GetMappiong에는 노란색이 아닌 회색..ㅜㅜ

66번 라인에는 public String getError() 뒤에 thorws Exception이 있어야 하는데 아무런 경고가 나오지 않고있습니다.

에러가 분명 있는데 아무런 경고가 안나와 컴파일 도중에야 발견하곤 했는데 드디어 해결했네요 ㅎㅎ

 

  방법

 

 

1. 편집기 오른쪽 상단에 "OFF"가 적힌 버튼에 커서를 올린다.

 

 

2. 커서를 올리면 Highlight: None으로 돼있을건데 이걸 Syntax, All Problems중 선택

 

 

3. 완료

 

반응형
반응형

  리팩터링 시 주의사항

1. 기능 추가를 목적으로 소스를 수정하는 것과 리팩터링을 위해 소스를 수정할 때 서로의 영역을 침범해서는 안된다.

2. 기능 추가시는 기존의 코드를 건들지 않아야 하고 리팩터링 시에는 기능 추가를 하지 않는다 다짐하고 해야 한다.

3. 리팩터링 시 테스트 케이스또한 새로 만들거나 수정하지 않고 진행해야 한다.(부득이한 경우 제외)

 

  리팩터링시 장점

1. 소프트웨어의 설계가 좋아진다.

2. 소프트웨어를 이해하기 쉬워진다.

3. 버그를 찾을 수 있다.

4. 프로그래밍 속도를 높일 수 있다.

 

 

 

 

 

 

 

  리팩터링 시점

1. 기이한 이름

코드는 단순하고 명료하게 작성해야 한다. 코드를 명료하게 표현하는 데 가장 중요한 요소는 "이름"이다.

출처: IT WORLD

프로그래머가 가장 힘들어하는 일이 이름 짓기일 만큼 변수 이름, 함수 이름 등 기능을 나타내는 이름을 짓는 데는 시간과 두뇌가 소모된다. 

그만큼 이름만 잘 지어도 나중에 문맥을 파악하느라 헤매는 시간을 절약할 수 있기 때문에 이름을 변경하는것은 가장 많이 사용되는 리팩터링이다.

만약 기능을 나타내는 이름을 짓기 어렵다면 설계가 잘못된 것은 아닌지 고민해봐야 한다.

2. 중복 코드 제거하기

3. 긴 함수 제거하기

...

 

해당 글은 마틴 파울러 - 리팩터링 2판을 보고 작성한 글입니다.

 

리팩토링

개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 이 책의 1판은, 기�

book.naver.com

 

 

반응형
반응형

본체는 있는데 모니터가 없어 먼지만 쌓이던 본체를 위해 모니터를 구입했습니다~~

모니터 패널의 종류도 많고 브랜드도 많고 인치도 고민하느냐 2주 동안 여러 제품을 찾던 중 알파스캔의 아기 A/S 썰을 듣고 알파스캔 모니터를 사기로 결정했습니다 ㅎㅎ

브랜드는 골랐지만 패널과 몇인치짜리를 사는지 또 고민한다고 1주일의 시간을 보내고 고른 게 AOC 27G2 제품입니다~

거거 익선이라는 주변 지인의 얘기와 게임을 하는 입장이면 144hz는 써야 된다고 들어 결정하게 됐네요 ㅎㅎ

 

위의 사진은 AOC 27G2의 공식 이미지입니다. 144hz, G-SYNC 호환, 1ms 응답속도, Game Mode 등 게임을 하는 저에겐 최고의 모니터라 할 수 있겠네요.

 

 

모니터를 사고 2주동안 사용하며 느낀 점을 작성하겠습니다.

상품 박스
조립후 모니터
실물 사진

1. 너무 부드럽다.

주로 하는 게임이 서든어택과 롤인데 응답속도와 주사율이 높아서 실력도 상승한듯한 착각을 했습니다

 

2. 모니터가 크고 시력보호 기능이 있어 문서 작업할 때 너무 좋다.

직업 특성상 문서작업 혹은 코드작성을 주로 하는데 글자크기도 크게 할 수 있고 화면을 분할해서 사용할 수 있다 보니 효율이 늘고 논글레어 기술이 들어가 눈의 피로도 적었습니다.

3. 섀도우 컨트롤 기능이 있어 영상시청시 어두운 장면을 잘 볼 수 있다.

그동안 사용했던 모니터들은 영화를 볼때 어두운 장면이 나오면 자막만 보이는 경우가 있었습니다.
섀도 컨트롤이 있기 때문에 어두운 장면도 잘 보이고 답답함 없이 영상을 시청할 수 있었습니다.

출처: IT 소비자(https://www.youtube.com/watch?v=VhN1jd5A5Lg)

 

모니터 설정은 다음 동영상에 보이는 내용이 있으며 게임모드를 선택해 각 게임에 맞는 설정을 이용할 수 있습니다~

모니터 설정

 

반응형
반응형

 

9.16에 구입한 27g2 모니터에 먼지(미세입자)가 박혀있는거 같아서 확인겸 수리를 위해 알파스캔을 방문했습니다~~

위치

 

제 모니터에 이상한 녀석이 있네요ㅜㅜ 새로산 모니터에 데드픽셀이 있으면 얼마나 서러운지 다들 아시죠..?

처음 사진으로 봤을때는 저 위치에 있었는데 알파스캔에 문의를 남기니 모니터를 두드려?? 움직이는지 확인하라 하네요

두드리다 보니 위치가 이동했습니다 ㅋㅋ 그렇다면 먼지 일수도 있는데 과연 먼지가 맞는지 확인겸 제거를 위해 서비스센터를 방문했습니다.

4시에 퇴근해서 집들려서 모니터 들고 도착하니 5시 25분이였어요 중간 중간 뛰느냐 너무 힘들었어요 ㅜㅜ
서비스 시간이 오후 5:30분까지라 서비스를 못받을수도 있겠다 걱정하며 방문했습니다.. ㅜㅜ

입구부터 복도에는 모니터들이 전시되어 있으니 구매전 방문이 가능하다면 한번 보고 결정하는것도 좋을것같네요

알파스캔은 자체 모니터, AOC 그리고 필립스 모니터도 알파스캔에서 유통 및 A/S를 담당하고 있기 때문에 두 회사의 로고가 같이있네요.

울트라와이드 모니터 한번쯤 써보고 싶네요 ㅎㅎ

센터 내부는 유리벽 없이 모니터가 전시돼어있어 모니터를 좀더 확실하게 비교할 수 있을거 같네요 ㅎㅎ

모니터 확인 결과 제눈에는 미세입자로 보이던게 파지? 라는 불량의 일종이라고 하네요 ㅜㅜ 위치가 바껴서 미세입자인줄 알았는데

현미경으로 확인결과가 그렇다네요,, 무결점 정책상 암점 2개 광점 1개 이상이여야 교환가능하다고 해줄 수 있는건 패널교환밖에 없다고 하여 찝찝하지만 패널을 교환받았네요 ㅜㅜ

 

반응형
반응형

  리팩터링을 왜 해야 하는가?

기존에 코드가 있다. 이 코드는 하나의 함수로 이루어진 코드이며 수정이 일어나면 해당 함수를 수정해야만 하는 구조다.

이 함수를 수정했을 때 테스트해야 하는 영역이 세 곳이 있다고 할 때 요청사항으로 인해 수정이 빈번하게 일어난다면 기존 함수와 변경된 부분을 수정하고 테스트해야 하는 입장에서는 죽을 맛일 것이다.

만약 요구사항이 1~2개씩 들어오는 상황이라는 이상적인 경우라면 시간이 들더라도 할 수 있겠지만 실제로 요구사항은 1~2개가 아닌 n개가 들어온다. 이 n개의 요구사항을 다 테스트하고 수정한다면 소모되는 시간은 기하급수적으로 늘어날 것이다. 리팩터링이 필요한 이유가 바로 앞에 말한 상황이 있기 때문이다.

잘 작동하고 변경할 일이 없는 코드도 언젠가는 변경할 일이 생길 수 있기 때문에 코드를 읽기 쉽고 이해하기 쉽게 로직을 짜야한다.

 

 

  리팩터링의 첫 단계

리팩터링의 첫 단계는 항상 리팩터링을 할 코드 영역을 꼼꼼하게 검사해줄 테스트 코드를 마련하는 것이다.

리팩 터링 기법들이 버그 발생 여지를 최소화하도록 구성됐다고는 하나 실제 작업은 사람이 수행하기 때문에 버그가 일어날 수 있다. 이는 프로그램이 클 수 록 빈번하게 일어난다.

 

리팩터링 하기 전에 제대로 된 테스트부터 마련한다.

테스트는 반드시 자가 진단하도록 만든다.

 

리팩터링은 프로그램 수정을 작은 단계로 나눠 진행한다. 그래야 중간에 실수하더라도 버그를 쉽게 찾을 수 있다.

코드에서 함수로 추출할만한 부분이 있다면 그 부분을 추출해 하나의 함수로 만들어 복잡도를 낮춰준다.

또한 해당 함수가 어떤 기능을 하는지 명확하게 알아볼 수 있도록 이름을 정해야 한다.

ex) 값이 같은지 확인하는 함수 A.equal("TEST"); 누가 봐도 같은지 확인하는 함수

반환하는 변수는 result로 지정해 파악하기 쉽게 할 수 있다.

매개변수로 play, play.b를 보낸다면 불필요한 play.b를 제거한다. → play.b는 play안에 있기 때문에 로컬 범위에 존재하는 이름이 늘어나서 추출 작업이 복잡해진다.

반복문 쪼개기 → 서로 다른 역할을 하는 변수가 하나의 반복문에 있을 때는 반복문을 나누어 명확하게 할 수도 있다.

반복문 하나를 2개로 나누기 때문에 그에 따른 성능 저하가 일어난다는 걱정을 할 수 있지만 실제로 그 영향은 미미할 때가 많다

 

리팩터링 때문에 성능이 떨어진다면, 하던 리팩터링을 마무리하고 나서 성능을 개선하자.

-> 성능이 떨어질 수 있지만 잘 다듬어진 코드가 성능을 개선하기 쉽기 때문에 각자의 판단으로 리팩터링을 진행하라

 

리팩터링 4가지

반복문 쪼개기 - 역할이 다른 변수를 분리한다

문장 슬라이드 하기 - 변수 초기화 문장을 for문 바로 앞으로 옮긴다.

함수 추출하기 - 추출할 수 있는 부분이 있다면 하나의 함수로 만든다

변수 인라인 하기 - 코드를 명확하게 볼 수 있다.

조건부 로직을 다형성으로 바꾸기(팩토리 패턴 익히기)
        - 인터페이스를 만들어 해당 인터페이스를 상속받아 조건별로 객체를 다르게 생성하는 패턴

좋은 코드를 가늠하는 확실한 방법은 '얼마나 수정하기 쉬운가'다.

 

 

"리팩터링을 진행하며 항상 생각해야 하는 것은 컴퓨터가 이해하기 쉽게 만드는 것이 아닌 사람이 이해하기 쉽게 만드는 것이다."

 

 

해당 글은 마틴 파울러 - 리팩터링 2판을 보고 작성한 글입니다.

 

리팩토링

개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 이 책의 1판은, 기�

book.naver.com

 

반응형

+ Recent posts