Effectively final
·
PL/모던 자바 인 액션
Effectively final이란? final로 선언되지는 않았지만, 초기화된 이후 참조가 변경되지 않아 결과적으로 final처럼 동작하는 변수 자바의 익명클래스나 람다 표현식에서 식 외부에 있는 지역 변수를 참조할때는 반드시 final이거나 선언 후 참조가 변경되지 않는 effectively final이어야한다. 아래와 같이 final이 아닌 count를 익명 클래스에서 참조하면 다음과 같은 에러가 발생한다. 그렇다면 final은 알겠는데 Effectively Final은 무엇일까? 다음 조건을 만족하는 지역변수를 effectively final이라고 한다. - final로 선언되지 않았다. - 초기화 진행 후 다시 할당되지 않았다. - 전위, 후위에 증감 연산자가 존재하지 않는다. (++등) 객체의..
자바 컬렉션 프레임워크
·
PL/모던 자바 인 액션
이번 시간엔, 자바의 컬렉션프레임워크에 대해 알아보자. 아래 그림과 같이 Iterable객체를 상속받은 Collection을 기반으로 다양한 컬렉션들이 존재한다. 대표적으론 List, Set, Map, Queue가 있다. 아래 그림외에도, Map이라는 컬렉션 또한 존재하는데 해당 컬렉션은 로 이루어진 특별한 구조로 인해 별개로 구분한다. List 인터페이스 순서 개념이 있는 데이터의 집합을 의미함. 순서가 존재하며 데이터의 중복저장이 가능하다. 이를 구현한 구현체로는 ArrayList, LinkedList, Vector, Stack이 존재한다.(Stack도 리스트 기반인줄은 .. 몰랐다) ArrayList 내부적 배열을 기반한 단방향 포인터 구조로, 각 데이터의 인덱스가 존재한다. 내부적으로 배열을 이용..
모던 자바 인 액션 스터디 - 2주차
·
PL/모던 자바 인 액션
소프트웨어 엔지니어는 항상 소비자의 요구사항이 변화하는 환경에서 일을 한다. 이를 처리하는데 비용은 최소화하고, 새로운 기능은 쉽게 구현되어야한다. 이와 같이 자주 바뀌는 요구사항에 효과적으로 대응하기 위한 개념인 동작 파라미터화에 대해 알아보자. 동작 파라미터화란? 책에서는 동작 파라미터화를 '아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록'으로 정의한다. 메서드의 파라미터로 전달된 코드블록의 실행이 나중으로 미뤄지는 것이다. 즉, 전달된 동작 파라미터에 따라 메서드의 동작이 결정되는 것이다. 이를 통해 다음과 같은 일반적인 예를 실행할 수 있다. - 리스트의 모든 요소에 대해 '어떤 동작'을 수행할 수 있음 - 리스트 관련 작업을 끝낸 다음 '어떤 다른 동작'을 수행할 수 있음 - 에러가 발생시..
섹션6 Spring Security 추가
·
BE/Spring - MSA
아래 코드를 보고 생겼던 의문, subject를 우리가 user의 UUID로 만들었는데, DB에 저장된 UUID와 추출된 subject가 동일한지 확인하는 코드가 왜 없지? private boolean isJwtValid(String jwt) { boolean returnValue = true; String subject = null; try { subject = Jwts.parser().setSigningKey(env.getProperty("token.secret")) .parseClaimsJws(jwt).getBody() .getSubject(); }catch (Exception e){ returnValue=false; } if(subject==null||subject.isEmpty()){ retur..
모던 자바 인 액션 스터디 - 1주차 PDF
·
PL/모던 자바 인 액션
보호되어 있는 글입니다.
모던 자바 인 액션 스터디 - 1주차
·
PL/모던 자바 인 액션
보호되어 있는 글입니다.
모던 자바 인 액션 - 시작하며
·
PL/모던 자바 인 액션
보호되어 있는 글입니다.
제 1회 코테이토 해커톤 후기 -(2)
·
활동/cotato
지난 글에 이어서 이 글부턴 본격적으로 개발하다가 막힌 점들도 얘기해보고 후기도 작성하겠다. 사실 카카오 로그인을 사전에 공부를 좀 해갔는데 JWT 토큰 생성, 프론트에 넘겨줘야할 정보들이 많고 복잡했다. 액세스 토큰을 주고 이를 DB에 저장하고.. 동주가 원하는 방향에 맞추기 어렵다고 판단했고 파트 교체를 했다. 우선 Entity 설정부터 했다. 우리는 AWS RDS를 사용했다. 인텔리제이에서 어플리케이션을 실행하면 application.yml에 jpa: hibernate: ddl-auto: create #create -> update 위와 같이 설정을 해놓았기에 테이블이 자동으로 생성되었다. ERD를 제대로 그리지 않으니 여기서부터 조금씩 헷갈리기 시작했다... 우선, Foreign key를 나타내는..
제 1회 코테이토 해커톤 후기 -(1)
·
활동/cotato
지난 6월30일 - 7월1일 IT연합동아리 코테이토에서 제 1회 해커톤이 열렸다. 이번에 6기로 들어간 동아리였는데 하루만에 프로젝트를 마무리할 수 있을까? 싶기도 하고 사실 4학년이지만 백엔드 개발을 시작한지 얼마 안됐기도하고 졸프..도 어쩌다보니 빠그라져서 다시 시작해야하는 입장에서 짧은 시간안에 많은 자극을 받고 좋은 경험이 될 것 같아서 참가를 신청했다. (사실 6기 회원은 필참이었던 것은 안비밀) 장소는 남부 터미널역 3rd space? 였는데 분위기가 생각보다 괜찮았다. 파티룸으로 놀기도 괜찮았던 것 같고 사실 이 날은 6기의 공식 마지막 정규세션이라 5시에 데모데이부터 시작했다. 사전에 주제와 팀을 미리 공지해줬다. 나는 스스로 아이디어가 부족하진 않다고 생각했는데 주제가 '환경'과 '노인'..
Requirements Analysis
·
CS/소공
보호되어 있는 글입니다.
유쓰응
글쓰는 개발자 Youth