분류 전체보기

java 8에서 가장 중요한 변화라 할 수 있는 람다 표현식의 등 ! 장 ! 등장이유 : 불필요한 코드를 줄이고, 코드의 이해를 돕습니다. (아 ㅎㅏ !) 람다 표현식은 메소드로 전달할 수 있는 익명함수를 단순화한 코드블록이다. 람다 표현식은 특정 클래스에 종속되지 않으며 함수라는 이름으로 명명합니다. 람다 표현식은 함수 자체를 전달 인자로 보내거나 변수에 저장하는 것이 가능합니다. 사용방법 : Runnable runnable = new Runnable(){ @Override public void run(){ #하나의 퍼블릭 메서드만 가지고 있을경우 !! 람다 사용가능 } }; Runnable runnable = ( ) -> { }; // Lambda 특정변수에 담을 수 있다.!! ( ) -> { ....
public final class Optional{ private final T value; // T타입의 참조변수 옵셔널을 사용하는 이유 : 모든 종류의 객체 저장가능 null 저장 가능 (nullPointException 을 막아줄 수 있다. ) !!!!!제일 중요!!!!!!! null 체크 ( if문 ) 필수 (nullPointException 체크 = 코드길어짐) ex) if (result != null) 해결방안 : 옵셔널에 null을 담아 옵셔널의 value값을 null 지정 [result t; (t안에 null을 담아서 NullPointException 해결)] 어떤 객체의 주소가 있으니 항상 null이 아니다. Optional 객체 생성방법 : 1. String str = "abc"; 2..
· 개-발/Git
커밋 임시 저장하기. 브랜치를 만들고 체크아웃 하려면 현재 작업디렉토리가 깨끗해야 합니다. 그런데 체크아웃이 필요하다면 ? 핫픽스나 버그픽스 급하게 체크아웃이 필요하다면 ? 커밋 덮어쓰기 1. commit --amend 작업진행중인 내용의 임시저장 1.브랜치1 에서 일단 (임시)커밋을 한다. 2.브랜치2 로 체크아웃하고 볼 일을 본다. 3. 다시 브랜치 1로 되돌아 온다. 4. 1의 작업을 이어서 마무리 짓는다 . 5. 커밋 덮어쓰기 (commit --amend)를 한다. [소스트리] 스테이지에 올린 후 커밋 전 커밋 버튼 위에 (마지막 커밋 정정)으로 토글을 맞춘 후 커밋을 진행 한다 6. (옵션) 필요하다면 (push --force)를 한다. 2. Stash 다른 브랜치로 체크아웃하기 전에 현재 작업..
JVM 이해 (Java Virtual Machine) 우리의 코드는 어떻게 실행 될까 ? 개발자 [ 자바파일(.java) > 자바컴파일러 > 바이트 코드 (.class) ] > JVM(Java Virtual Machine) > OS(Operating System 윈도우..리눅스..맥 ) > 하드웨어 개발자는 코드를 만들어 JVM 으로 보낸다 JAVA는 OS에 종속적이지 않다는 특징을 가지고 있다 (대충 아무OS에서 다 돌아간단 얘기) 이러기 위에선 OS위에서 JAVA를 실행시킬 무언가가 필요하단 말이다. 이것이 JVM JAVA 소스코드(*.java 자바파일)는 CPU가 인식을 하지 못하므로 기계어로 컴파일 해줘야 한다. 하지만 JAVA는 JVM 이라는 가상머신을 거쳐 OS에 도달하기 때문에 OS가 인식할..
· 개-발/Git
커밋 취소하기 (commit cancel) 방법1. reset : hard (*이 커밋까지 현재 브랜치를 초기화[소스트리]) (CLI) git reset --hard 에 해당하는 명령으로 커밋을 되돌리기 (-reset이후 push 는 force옵션을 선택해야함) 이전커밋은 사라진다. - 되돌리기 전에 브랜치를 만들어 데이터를 보호하자 강제 푸시가 필요하다. 장점 : 쉽다 단점 : 쉽다 (?)엥 ? 커밋이 날아간다 git push --force / 는 소스트리에서 지원하지 않기 때문에 CLI(터미널)를 이용해야 한다. *같은 방법으론 merge(병합) 선택 >> 병합충돌이 일어난다 >> push 방법2. *되돌리기 전에 브랜치를 만들어 데이터를 보호하자 reset : hard (*이 커밋까지 현재 브랜치를..
어느날 scanner 함수를 사용하다가 InputMismatchException 을 만나게 되었다. (.nextInt() 같은 타입이 지정 되어있는 메소드에 타입이 맞지 않은 값들을 넣어주면 생기는 에러메세지 였다.) 스캐너 함수에서 타입매칭에러를 이르킬 경우 해당 변수가 계속 매칭 되어있어 그 루프는 끝나지 않고 계속 도는 현상이 발생되었다. 이럴 경우 스캐너 함수인 sc를 새로 초기화 해주어야 한다. 난 sc.nextLine()을 이용하여 잘못 잘못된 값을 .nextLine()함수를 통해 scanner 함수를 초기화 해주었다. nextInt() Enter값은 그대로 남아있다. nextLine() 메소드는 Enter값을 기준으로 메소드를 종료시키기 때문에 nextLine()메소드가 실행될 때 남아있는 ..
· 개-발/Git
remote: Support for password authentication was removed on August 13, 2021.remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. 위와 같은 에러가 뜬다면 읽어보세요. 2021년 8월부터 인증이 바뀌었다고 한다. 찾아보니 인증 토큰을 사용하여 접속하면 된다. 1. 계정 로그인 후 오른쪽 프로필 클릭해서 Settings 클릭 2.왼쪽 메뉴 맨 아래 부분..
다른 사람이 봤을때 이게 어떤 기능을 하는지 모르기 때문. 코드에서 코드명을 짓는 이유가 뭘까 ? 바로 이 코드가 하는 일이 무엇인지 알기 위함이다. 그런데 setter를 사용하면 그 의미가 없어지기 때문이다. 또 그것을 본 개발자는 직접 들어가 코드를 해석해야 하는 시간적 부담을 주게 된다. ···도메인 모델의 엔티티나 밸류에 공개 set 메서드만 넣지 않아도 일관성이 깨질 가능성이 줄어든다. 공개 set 메서드를 사용하지 않으면 의미가 드러나는 메서드를 사용해서 구현할 가능성이 높아진다. 예를 들어 set 형식의 이름을 갖는 공개 메서드를 사용하지 않으면 자연스럽게 cancel이나 changePassword처럼 의미가 더 잘 드러나는 이름을 사용하는 빈도가 높아진다.··· 
imSoo
'분류 전체보기' 카테고리의 글 목록 (20 Page)