일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 매일메일
- sw expert academy
- 프로그래머스
- 항해플러스
- SW
- redux
- programmers
- maeil-mail
- 리액트
- 항해99
- redux-saga
- react-router
- redux-toolkit
- Get
- axios
- Python
- 테코테코
- 알고리즘
- 이코테
- 자바
- react-redux
- C++
- useDispatch
- 코딩테스트합격자되기
- json-server
- Algorithm
- react
- createSlice
- JavaScript
- Today
- Total
목록Java | Spring (10)
Binary Journey
💡 inflearn - 김영한의 실전 자바 로드맵을 따라 학습하고 질문을 뽑아 답하며 복습합니다.💡 학습내용은 섹션 4부터 섹션6까지이며 정리 내용은 여기에 작성하였습니다. 연산자 "문자열을 비교할 때 == 대신 equals()를 사용해야 하는 이유를 설명해주세요."== 연산자는 객체의 참조(메모리 주소)를 비교하고, equals()는 객체의 내용을 비교합니다.String 객체는 생성 방식에 따라 다르게 동작합니다:리터럴로 생성 시("hello"): String Pool에 저장되어 같은 문자열은 같은 참조를 공유합니다.new 연산자로 생성 시: 항상 새로운 객체가 생성되어 다른 참조를 가지게 됩니다.String str1 = "hello";String str2 = "hello";String str3 =..
💡 inflearn 김영한의 실전자바 로드맵을 따라 학습하고 복습한 내용을 적었습니다. 연산자 산술 연산자산술 연산자는 주로 숫자를 계산하는 데 사용된다. 실무에서 주로 다루는 연산자산술 연산자: +, -,*, /, %증감 연산자: ++, --비교 연산자: ==, !=, >, , >=, 논리 연산자: &&, ||, !대입 연산자: =, +=, -=, *=, /=, %=삼항 연산자: ? :// 변수 초기화 int a = 5; int b = 2; // 덧셈 int sum = a + b; System.out.println("a + b = " + sum); // 뺄셈 int diff = a - b; System.out.println("a - b = " + diff); // 곱셈 int mu..
💡 inflearn - 김영한의 실전 자바 로드맵을 따라 학습하고 질문을 뽑아 답하며 복습합니다.💡 학습내용은 섹션 1부터 섹션3까지이며 정리 내용은 여기에 작성하였습니다. JVM "Java의 플랫폼 독립성이 가능한 이유를 설명해주세요."OS에 맞는 JRE가 설치되어 있다면 JRE내 JVM을 사용하여 자바 프로그램을 제약 없이 동작하도록 할 수 있기 때문입니다.자세히 설명하자면 Java의 컴파일 과정 중 Java 소스코드(.java)는 바이트코드(.class)로 컴파일됩니다. 이 바이트코드는 중간 언어(Intermediate Language)형태로 특정 플랫폼에 종속되지 않은 중립적인 형태입니다. 각 운영체제별로 제공되는 JVM이 바이트코드를 해당 운영체제에 맞는 기계어로 변환해줍니다. JVM이 운영..
💡 inflearn 김영한의 실전자바 로드맵을 따라 학습하고 복습한 내용을 적었습니다.Hello World💡 프로그램 언어는 손으로 작성해야 합니다.자바 프로그램 실행public class HelloJava { // HelloJava 클래스의 범위 시작 public static void main(String[] args) { // main 메서드의 범위 시작 System.out.println("hello java"); } // main 메서드의 범위 끝 } // HelloJava 클래스의 범위 끝자바 언어는 대소문자를 구분한다. public class HelloJava파일명과 클래스 이름이 같아야 한다.{} 블록을 사용해서 클래스의 시작과 끝을 나타낸다. publi..
별 내용은 없고 slf4j와 LoggerFactory 사용예제 코드만 적으려 한다. import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Slf4j @Component public class 인터페이스Impl implements 인터페이스 { private static final Logger logger = LoggerFactory.getLogger(인터페이스Impl.class); @Override public void 인터페이스에있는메소드(Param param) { logger.info("====logger====="); logger.debug("------이렇게만 해도 내용은 나오지롱----..
String 클래스는 이미 String 인데 왜 toString() method 를 가지고 있을까 그냥 궁금해졌다. 근데 나와 같은 궁금증을 가진 사람이 많나 보다. C# 이긴 한데 Java도 별반 다를 바 없을 거 같아서 주소를 가져왔다, stackoverflow.com/questions/2778827/why-does-the-string-type-have-a-tostring-method Why does the string type have a .ToString() method? Why does the string data type have a .ToString() method? stackoverflow.com String 의 가장 상위 클래스가 Object이고 String은 Object의 하위 클래스라..
같은 내용인데 방법이 달라 벌써 4번째 글을 쓴다. Gradle 로도 할까말까 고민 중 VSCode 에서 ctrl + shift + P 를 누르면 검색칸이 뜨는데 거기에다 Spring이라고 타이핑하면 다음과 같이 뜬다. 나는 Maven이 더 익숙하니까 Create Maven Project로 해보겠다. 내 개발 환경 및 버전은 다음과 같다. 1. 플랫폼, OS: Windows 10 64bit 2. JDK: OpenJDK - AdoptOpenJDK 14 3. maven: apache-maven-3.6.3 Maven Project를 선택하면 Spring Boot version을 선택하라고 뜬다. 뭐가 좋을지 검색해본다. 여기저기 돌아다니다보니 Spring Boot 2.2.4 RELEASE 기준으로 Java 8..
orElseGet 에 이어 orElseThrow 를 소개한다. 내가 쓰임에 맞게 사용한지는 모르겠지만 일단 설명은 해보겠다. (컨펌 전임) 나의 이전 코드는 이렇다. // ServiceImpl @Transactional @Override public Entity updateEntity(Entity updateEntity) { Optional optEntity = entityRepository.findById(updateEntity.getEntityId()); if(optEntity.isEmpty()) { return null; } updateEntity.setBlahBlah(something); return entityRepository.save(updateEntity); } 이렇게 되면 그냥 NullP..
Java로 백엔드를 개발하는 중에 Optional을 쓴다면 아래와 같이 많이들 썼을 것이다. // ServiceImpl @Override public Entity findOneEntity(Long entityId) { Optional optEntity = entityRepository.findById(entityId); Entity entity = new Entity(); if(optEntity.isPresent()) { entity = optEntity.get(); } return entity; } 오늘 이걸 두 문장으로 끝내버리는 Optional 함수 orElseGet 을 알아냈다. orElseGet은 찾아온 값이 null 이 아닐 경우에만 값을 get 해준다. 위와 아래 코드에서 의도된 return..
오늘 만난 이슈인데 나같이 몇 달 안된 개발자는 백엔드에 관한 지식이 별로 없어서 겪었지만 다른 사람들은 자주 못볼 이슈일 수도 있다. 엔티티에는 데이터가 insert 될 때 시간을 자동으로 찍어주는 @CreatedDate 어노테이션이 붙은 Date type 필드가 있었다. 테이블에 insert 도중 계속 해당 필드 값이 'cannot be null' 이어야 한다며 에러 메시지가 나타났다. datetime 'COLUMN_NAME' cannot be null 알고 보니 @EntityListeners(AuditingEntityListener.class) 내 엔티티에만 위 어노테이션이 빠져서 계속 오류가 났던 것이다. 내가 참고한 사이트는 아래와 같다. stackoverflow.com/questions/509..