일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java
- 메이븐
- String
- 프록시
- beanfactory
- 링커
- 빌드툴
- exception
- JPA
- DesignPattern
- IOC
- gradle
- AutoConfiguration
- FunctionalInterfaces
- Spring
- ApplicationContext
- hibernate
- Kotlin for Java Developers
- 토비의스프링3.1
- 링킹
- Immutable
- 토비의스프링
- 클린코드
- lambda
- DispatcherServlet
- 자바
- 컴퓨터시스템
- ORM
- springboot
- springwebmvc
- Today
- Total
목록전체 글 (98)
엔지니어로 가는 길

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html 이름이 없는 익명 클래스가 이름 있는 클래스보다 더 간결하지만 하나의 메소드만 갖는 클래스의 경우에는 익명 클래스조차 과하다. 람다 표현식을 이용하면 하나의 메소드만을 갖는 클래스의 객체를 익명 클래스보다 더 간결하고 분명하게 표현할 수 있다. 람다 표현식의 문법 -괄호로 속 콤마로 구분되는 형식 매개변수의 리스트 람다 표현식에서 매개변수의 데이터 타입을 생략할 수 있다. 또한 매개변수가 하나라면 괄호도 생략할 수 있다. -arrow token: -> -body: 단일 표현식이나 statement block 위와 같이 body가 단일 표현식으로 이루어진 경우 표현식을 계산..

출처: https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html 익명 클래스 - 익명 클래스를 사용하면 코드를 더 간결하게 만들 수 있다. - 익명 클래스는 정의되는 동시에 객체가 생성된다. - 이름이 없다는 점을 빼면 지역 클래스와 유사하다. (지역 클래스를 한 번만 사용하면 되는 경우라면 익명 클래스를 사용하라.) - 익명 클래스는 자신을 포함하는 외부 클래스(이하 enclosing class)의 멤버에 접근할 수 있다. (final 또는 유사 final로 선언된 변수에만 접근할 수 있다.) (지역 클래스에서도 final 변수 또는 유사 final로 선언된 변수에만 접근할 수 있는 것 같다.) - 중첩 클래스와 마찬가지로 익명..

출처: https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html 지역 클래스(Local Classes) 지역 클래스는 블록 안에 정의된 클래스를 말한다. 아래 이미지에서 EnglishGreeting은 지역 클래스이다. 꼭지 1. 지역 클래스의 선언 2. Enclosing class 멤버에 접근하기 (*Enclosing class란 지역 클래스를 포함하고 있는 클래스) 3. 지역 클래스와 내부 클래스의 유사성 1. 지역 클래스의 선언 지역 클래스는 표현식, statements, 블록 모두에서 정의할 수 있다. 예를 들어 메소드의 body나 for문이나 if문 안에서 지역 클래스를 정의할 수 있다. 2. Enclosing class의 멤버에..

에러메시지 Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`vanilla`.`#sql-1c10_73`, CONSTRAINT `document_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `_user` (`id`)) 상황 @ document라는 테이블과 _user라는 테이블이 있다. @ _user는 사용자를 나타내고, document는 사용자가 쓴 글을 나타내는 테이블이다. @ _user의 PK는 id이다. @ document와 _user 모두 몇 개의 튜플이 존재한다. @ 이후에 document에 user_id라는 컬럼을 추가했다. @ document의 user_id를 ..

출처: https://www.geeksforgeeks.org/stream-in-java/ Java Stream API(Java 8) 자바 8에 등장한 자바 스트림 API는 콜렉션을 처리할 때 사용된다. 스트림은 콜렉션 객체들의 흐름이라고 생각할 수 있다. 물이 나오는 곳에 파이프를 연결하여 원하는 곳으로 이동시킬 수 있듯, 스트림도 메소드(파이프)를 연결(파이프라인화)하여 원하는 결과를 얻을 수 있다. 자바 스트림의 특징 -스트림은 자료구조가 아니다. 콜렉션이나 배열 또는 입출력 채널에서 입력을 취한다. (입력만 취한 상태는 물만 받아놓은 상태이므로 이 자체로는 아무것도 아니다. 여기에 파이프를 연결하여 물이 흐르게해야 의미가 생긴다.) -스트림은 원본 자료구조를 바꾸지 않는다. 오직 파이프라인화된 메소..

출처: https://javapapers.com/core-java/java-jvm-run-time-data-areas/#Program_Counter_PC_Register JVM 런타임 메모리 영역 1. Program Counter(이하 PC) 2. JVM 스택 3. 힙 4. 메소드 영역 5. 런타임 상수 풀 6. 네이티브 메소드 스택 JVM 런타임 메모리 영역은 크게 두 가지로 그룹으로 나눌 수 있다. @스레드별로 갖는 영역: PC, JVM 스택, 네이티브 메소드 스택 이 영역의 데이터는 스레드가 시작할 때 초기화되고, 스레드가 완료될 때 제거된다. @모든 스레드가 공유하는 영역: 힙, 메소드 영역, 런타임 상수 풀 이 영역의 데이터는 JVM이 시작할 때 초기화되고, JVM이 종료될 때 제거된다. 1. ..

출처: https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html 중첩 클래스란 Java에서는 클래스 안에 클래스를 정의할 수 있다. 클래스 안에 정의된 클래스를 nested class(중첩 클래스) 라고 한다. 중첩 클래스는 바깥 클래스의 ‘멤버’이므로 private, protected, public, package-private 모두 가 능하다. (top-level 클래스는 오직 public과 package-private만 가능하다.) 중첩 클래스는 static과 non-static 으로 나눌 수 있는데, static인 경우 static nested class라고 부르고 non-static인 경우 inner class라 부른다. Non-stati..

Java의 접근 제어자는 아래와 같다. private: 클래스 내부에서만 접근 가능 default(package-private): 클래스 내부와 패키지 내의 다른 클래스에서 접근 가능 protected: default에 더해 다른 패키지라도 자식 클래스일 경우 접근 가능 public: 외계에서도 접근 가능 클래스 접근제어자 클래스에는 접근제어자 package-private와 public만 가능하다. (내부 클래스(nested class)의 경우 다른 접근 제어자를 쓸 수 있는데 이는 다음에 살펴보도록 한다.) 패키지 외부에서는 package-private 클래스가 보이지 않는다. 따라서 상속받을 수도 없고, 객체를 생성할 수도 없다. package-private 클래스가 자식 클래스에서도 접근이 안된다고..

스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링이 지향하는 가치와 프로그래밍 모델을 충분히 이해하지 못하고는 제대로 활용할 수 없다. 스프링을 성공적으로 학습했는지를 확인할 수 있는 좋은 방법이 있다. 스프링을 공부하고 적용한 이후에 자신이 좀 더 나은 개발자가 되었는가 확인해보는 것이다. ... 스프링을 공부하고 적용했지만 스프링의 사용법에 조금 익숙해진 것을 빼면 더 나아진 게 없다고 느낀다면 스프링을 잘못 공부한 것일지도 모른다. IoC와 IoC 컨테이너 스프링 애플리케이션에서는 객체 생성과 관계설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 독립된 컨테이너가 담당한다. 컨테이너가 코드 대신 객체에 대한 제어권을 갖고 있다고 해서 Inversion of Con..
책 읽기 좋은 날이다. 책 소개 이 책은 여러분이 더 나은 프로그래머가 되도록 도울 것이다 이 책은 이론적인 책이 아니다. 우리는 실용적인 주제에, 더 합당한 결정을 내릴 수 있도록 여러분의 경험을 이용하는 일에 집중한다. 실용주의란 도구든, 언어든, 운영체제든 상관없이 최고의 해결방안 같은 것은 없다. 오직 특정한 환경 조건의 집합마다 각 집합에 가장 적절한 시스템들이 있을 뿐이다. 바로 이것이 실용주의가 뜻하는 바다. 어떤 특정 기술에 매이면 안 되며, 개별 상황마다 그 상황에서 좋은 해결방안을 고를 수 있도록 충분한 배경지식과 경험을 가져야 한다. 배경지식은 컴퓨터 과학의 기본 원리들을 이해하는 것에서 나오고, 경험은 다양한 범위의 실제 프로젝트들을 수행해보는 것에서 나온다. 이론과 실천의 결합이 ..