분류 전체보기

자바는 입력 메서드가 두 가지인데, 바로 BufferedReader와 Scanner이다.처음 자바를 시작 할 때는 Scanner를 쓰다가, 나중에 속도가 중요해질 때가 생기면 보통 BufferedReader를 사용한다.그럼 이 두 입력 클래스의 차이는 뭘까? 왜 속도에 차이가 나는걸까?  1. Buffer  버퍼는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 해당 데이터를 보관하는 임시 메모리 영역이다. 쉽게말해 '데이터 임시 저장공간'이라고 할 수 있다.  위의 그림처럼, 버퍼를 사용하지 않는 입력은 키보드의 입력이 발생하는 순간 바로바로 프로그램으로 전달된다(입력값 인식 경계와 별개). 하지만 버퍼를 사용하게 되면 키보드의 입력을 바로 보내는 것이 아니라 버퍼에 순서대로 적재하고, 입..
·TIL
[ 팀 프로젝트 ]프로젝트 : 수강생 관리 프로그램9조 : 강동준, 김나영, 정승헌, 추죵윤, 한지은 [ KPT 타임테이블 ]KPT에 대해서 설명 : 5분Keep, Problem 작성 : 5분각자 작성한 Keep, Problem 공유 : 10분Try 작성 : 7분각자 작성한 Try 공유 : 8분팀 및 프로젝트에 활용할 Try & Action 선정 : 15분  Keep : 현재 만족하고 있는 부분(계속 이어갔으면 하는 점)전반적 일정을 미리 계획한 후 맞춰서 한것Github 저장소를 사용하면서 작업 섹션을 적절하게 나눈 브랜치를 각자 사용함문제나 궁금한 점, 아이디어가 있을 경우 실시간 소통으로 모든 팀원이 최대한 문제해결에 협조. Problem : 불편하게 느끼는 부분(개선이 필요하다!)사전에 프로젝트에..
·TIL
팀 프로젝트의 기능 개발이 슬슬 마무리되면서 기능과 관계없이 조금 더 효율적인 코드를 위해 리팩토링을 시작했다.아직 기능이 완성된 것은 아니라서 다른 팀원들과 겹치치 않을 만한 곳부터 고치는데, 그중 눈에 띈 것이 바로 static이었다.  나무반 세션 중 튜터님이 초기에 static을 많이 사용하게 된다고 많이 사용하지 말라고 하셨는데, 그 말을 듣고 프로젝트 코드를 보니 아니나 다를까 초기에 관리클래스(ManagementScore, ManagementStudent)를 대강 나누면서 사용한 static이 클래스 내부 메서드와 변수에 전부 붙어있었다. 아무래도 static 메서드 내부에서 같은 클래스의 메서드를 호출할 때 그 메서드도 static이어야 해서 더 그런 것 같다.. 그렇다면 어떤 상황에서 s..
·TIL
오늘 초기세팅으로 깃허브에 .idea 폴더가 함께 올라가 오전 내내 오류와 마주했다. .idea 폴더.idea 폴더란?IntelliJ 의 IDE 옵션(프로젝트별 설정값)을 저장하는 폴더이다. 각 옵션은 작업자의 컴퓨터 환경에 맞춰서 변경된다.따라서 다른 사용자가 git clone 할 때 영향을 주지않으려면 .idea 폴더를 .gitignore 에 추가해서 깃허브에 올라가지 않도록 한다. .gitignore 파일 미적용 해결그래서 .gitignore에 .idea폴더를 추가하고 commit, push를 했는데 Github에 .idea폴더가 그대로 올라가있는 걸 발견했다!그럼 .gitignore이 제대로 적용되지 않았다는 것. 원인을 찾아보니 Git의 캐시 문제라고 한다.따라서 아래 명령어로  git의 캐시 ..
·TIL
오류 발생팀 프로젝트 기본 세팅을 하기 위해 다운로드한 파일을 인텔리 제이로 열고-> git 연결을 하고-> git add .을 쳤더니평소엔 아무런 이상이 없던 상황에서 아래와 같은  에러 메세지가 발생했다.warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it무언가 잘못 건드린 것도 없고, 깃 연결도 잘 됐는데?? 싶어서 새로 파일을 열어 깃을 연결해 보았지만 같은 에러가 발생했다.  원인찾아보니 Whitespace 에러라고 하는데, LF와 CRLF 개행문자 차이로 인한 문제라고 한다.LF : Line-Feed의 약자. Unix 시스템에서 사용되는 줄바꿈 문자열(\n).CRL..
·TIL
알고리즘 코드카타 중 주어진 문자열을 공백을 기준으로 자르도록 구현해야 하는 상황이 발생했다. String클래스의 split(” “) 메서드를 사용하여 문자열을 자르긴 했는데, 사용자가 입력하는 문자열인 만큼 가장 앞에 공백문자가 들어오는 경우 “ ”빈 공간도 문자열로 인식해 배열에 입력되었다.그래서 StringTokenizer를 사용했더니 공백문자를 문자열로 인식하지 않았다. 아래는 테스트용으로 작성한 코드로 , 같은 문장을 split() 메서드와 StringTokenizer 클래스를 사용하여 자른 문자열 개수를 보여주고 있다.입력 문장 = “ 문자열 개수 구하기 테스트”split() 메소드 사용 결과 = 5StringTokenizer 클래스 사용 결과 = 4 " "(공백문자)를 기준으로 문자열을 자른..
·Git&GitHub
taks별로 깃허브에 push 하며 개인과제를 하던 중, 최신 커밋의 메세지를 잘못 작성한 것을 확인했다. 팀업이라면 revert를 사용했을 테지만, 개인 학습에 사용하는 만큼 삭제기록 없이 깔끔하게 만들고 싶어 reset을 사용하려고 했다. 그런데 이전에 간단히 정리한 reset 사용방법으로는 일일히 커밋 해시를 찾아서 넣어줘야 해서, 더 간단히 할 수 있는 방법이 있지 않을까 싶어 찾아보았다.https://g-vieve.tistory.com/19 04. 커밋 되돌리기 (reset, revert)reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지운다.revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다.1. reset : 원하는 시점(커밋)으로 되돌아가므로 돌아온 시점 이후 커밋은 삭제..
·Git&GitHub
데스크톱  폴더를 깃허브에 올려서 연동하려다 오류가 발생했다.  error: GH007: Your push would publish a private email address.! [remote rejected] main -> main (push declined due to email privacy restrictions)살펴보니 이메일 개인정보보안 제한으로 푸시가 거부되었다는 것이다.  안내대로 이메일 세팅 사이트로 들어가니 과거의 내가 이메일을 비공개로 전환해 두었다....이메일을 비공개로 돌리면 웹 기반 작업을 할 때 이 이메일을 사용할 수 없다.  박스 안에 기존 이메일 대신 사용할 수 있는 깃허브 이메일 주소를 제시해주고 있다. (보통 고유 식별자+사용자 이름)이 이메일을 데스크톱에서 gloabl..
·Git&GitHub
서로 다른 브랜치를 합치는 방법 2가지merge : 두 브랜치를 한 커밋에 이어 붙인다.브랜치 사용 내역을 남길 필요가 있을 때 적합rebase : 브랜치를 다른 브랜치에 이어 붙인다.한 줄로 깔끔히 정리된 내역을 유지하고 싶을 때 적합이미 공개 저장소에 Push 한 커밋을 Rebase 하는 것은 금지. Merge두 브랜치 main, test가 있을 때, test 브랜치를 main브랜치에 병합한다는 가정.(main  1. main 브랜치로 이동(기준이 되는 브랜치)2. 아래 명령어로 병합git merge test #병합시키려는 브랜치명3. :wq로 자동입력된 커밋 메시지 저장하여 마무리4. 소스트리에서 확인.5. 병합된 test 브랜치 삭제git branch -d test ! merge도 하나의 커밋으로..
·Git&GitHub
브랜치 생성git branch (브랜치명) 브랜치 목록 확인git branch 다른 브랜치로 이동git switch (브랜치명) 브랜치 생성과 동시에 이동하기git switch -c (브랜치명) 브랜치 삭제- 이때, 다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는 -d 대신 -D(대문자)로 강제 삭제해야 한다.git branch -d (삭제할 브랜치명)git branch -D (강제삭제할 브랜치명) 브랜치 이름 바꾸기git branch -m (기존 브랜치명) (새 브랜치명) 여러 브랜치 내역 편리하게 보기git log --all --decorate --oneline --graph
G_vieve
'분류 전체보기' 카테고리의 글 목록