전체 글 (291) 썸네일형 리스트형 [Java LTS] Java 8, 11, 17 더보기 https://code-lab1.tistory.com/253 Java 8, 11, 17 은 LTS(Long Term Support) 버전으로 장기간 (출시 이후 8년간) 보안 업데이트 및 버그 수정을 지원해준다. 각 특징을 정리하자면 Java8 첫번째 LTS 버전 32bit 지원하는 마지막 공식 Java 버전 Oracle JDK(Oracle사에서 지원하는 버전으로 유료) , Open JDK(오픈소스 기반의 무료)로 나뉨 새로운 날짜와 시간 API(LocalDateTime 등) 람다식(Lambda), Stream API PermGen 영역 삭제 Static Link JNI Library Java11 Oracle JDK와 Open JDK 통합 Oracle JDK가 구독형 유료 모델로 전환 람다 지역 .. [CI/CD와 무중단 배포] CI/CD CI/CD (Continuous Integration/Continuous Delivery)는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포 지속적 통합 / 지속적 배포 결합 사례를 의미한다고 한다 컴파일 : 프로그래머가 작성한 소스코드를 기계어로 변환하는 과정 빌드 : 소스 코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어 산출물로 만드는 과정 배포 : 빌드 결과물을 사용자가 접근할 수 있는 환경에 배치하는 것 백엔드의 요구사항 -> 쉘 스크립트 또는 CI 도구를 이용한 배포 자동화 CI/CD 마틴 파울러가 제시한 CI 의 4가지 규칙 1. 모든 소스코드가 살아있고.. [CORS] 더보기 https://youtu.be/-2TgkKYmJt4 SOP (Same Origin Policy) 다른 출처의 리소스를 사용하는 것에 대해 제한하는 보안 방식 출처(origin) 이란 http://localhost 와 동일 origin 인 것은 1은 프로토콜이 다름 2는 80이 기본포트이므로 같음 3은 127.0.0.1 은 IP가 로컬호스트이긴 하지만 스트링밸류로 브라우저가 비교하기 때문에 다름 4는 /api/cors 는 추가적으로 붙는 거기때문에 동일출처 맞음 여기서 다른 origin resource가 필요할때 CORS 를 사용함 CORS 접근제어 시나리오 1. 단순요청 (Simple Request) 2. 프리플라이트 요청 (Preflight Request) 3. 인증정보 포함 요청 (Creden.. [Scope & Closure] 더보기 https://youtu.be/PVYjfrgZhtU Scope 란 변수 이름, 함수 이름, 클래스 이름과 같은 식별자가 본인이 선언한 위치에 따라 다른 코드에서 자신이 참조될 수 있을지 없을지 결정하는 범위 선언 시점이 전역과 지역에 따라 다름 Scope Level 라떼는... val과 var을 썼었즤...ㅋㅋㅋㅋㅋㅋ js는 내부슬롯에서 상위 스코프에 대한 정보를 저장한다 js는 함수 호출 시 실행 컨텍스트에서 생성하면서 실행 컨텍스트 스택을 쌓음 -> 렉시컬환경 생성 -> 코드 실행이 끝나면 실행 컨텍스트 스택에서 POP됨 클로져 outer함수 실행 시 코드실행 된 다음 실행 컨택스트 스택에서 팝 되면서 라이프사이클 주기에서 마감하게 된다. 그러나! 코드 실행 시 여전히 값이 있다. Closur.. [JPA Repository] supported keyword 2.3.2 Query creation Generally the query creation mechanism for JPA works as described in Section 1.2, “Query methods”. Here's a short example of what a JPA query method translates into: Example 2.3. Query creation from method names public interface UserRepository extends Repository { List findByEmailAddressAndLastname(String emailAddress, String lastname); } We will create a query using the JPA.. [Stream] 더보기 https://youtu.be/pL2Oi6fRGYs 개념은 공부해도 해도 해도 부족한 너낌.. Stream Java8 추가 기능으로 람다를 활용할 수 있음 (기존 방식은 컬렉션 프레임워크 또는 배열을 다룰 때 for문, foreach문 등을 이용했었음) 배열 또는 컬렉션 인터페이스의 클래스를 여러개 조합하여 원하는 결과를 도출해냄 스트림 1. 선언(생성) 2. 가공 3. 반환 특징 함수형 프로그래밍으로 간결하고 가독성을 높임 쉽게 병렬 처리를 수행할 수 있음 문자열 스트림 문자열 객체를 스트림으로 변환 CollectionStream 실제로는 Stream에서 필요한 데이터를 가져와 가공까지 해서 리턴시키는 경우가 대부분 더보기 https://youtu.be/KOlXC4MMMto 스트림 가공하기 중간.. [Optional] NullPointerException Null - 자바에서 제공되는 키워드로 참조형 타입의 기본값으로 사용 됨 null 인 경우 할당되는 메모리가 없다 NullPointException Case -> null 객체의 메소드나 필드 접근, null throw하는 경우 NullPointerException 피하기 하지만 어쩔 수 없이 Null 을 처리해야하는 상황이 오는데 이때 이 Optional을 사용한다 Java.util.Optional Null을 안전하게 사용할 수 있는 기능을 제공 Null이 올 수 있는 가능성이 있는 참조객체를 Wrapping하는 Wrapper 클래스이다 Optional 에는 객체를 다룰 수 있는 다양한 메소드가 있다 filter : predicate 를 사용하여 값이 true 이면.. [effective java] 3판 요약 보면서 (2) 더보기 https://github.com/keesun/study/blob/master/effective-java/item5.md 리소스를 엮을 때는 의존성 주입을 선호하라 public class SpellChecker { private final Lexicon dictionary; public SpellChecker(Lexicon dictionary) { this.dictionary = Objects.requireNonNull(dictionary); } public boolean isValid(String word) { throw new UnsupportedOperationException(); } public List suggestions(String typo) { throw new Unsupporte.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 37 다음