Euqals, Hashcode 메소드에 대해 알아보자. 먼저 equals 메서드와 hash code가 왜 필요한지를 간단하게 알아보자. 만약 아래처럼 member1객체와 member2객체를 선언하고 객체를 비교했을 때 true 값을 받을 수 있을까 ?? 그렇다.. 너무 쉬운 질문이었다. 답은 당연히 false 일 것이다. 그 이유는 둘은 동일 객체가 아니기 때문이다. public class Test { public static void main(String[] args){ final Member member1 = new Member("1"); final Member member2 = new Member("1"); System.out.println(member1 == member2); // false Sy..
시작하며 컬렉션에 대한 내용을 정리하게 된 계기는 먼저 자바 Collection 만의 API 기능을 효율적으로 사용하기 위해서이다. 다음은 자료구조를 적극적으로 활용하기 위해서이다. 자료구조를 이용하면 훨씬 효율적으로 데이터들을 관리할 수 있고 심지어 코드의 가독성 또한 좋아지기 때문이다. 가독성이 안 좋아지고 복잡함을 증가시키는 IF 문을 피하는 코드를 만드는 것은 아주 효율적인 코딩이라고 생각한다. 예를 들어, List에 있는 이메일들을 중복 검사한다고 했을 때 단순하게 생각하면 List를 Email 숫자만큼 loop를 돌려 Email을 중복 검사하는 방법이 있을 수 있다. 하지만 HashSet, TreeSet을 이용하면 중복된 값이 저장이 되지 않기 때문에 좀 더 효율적으로 데이터를 관리하고, 소스..
토비의 스프링 이글은 토비님의 스프링책을 보고 요약한 내용입니다 테스트 스프링이 개발자에게 제공하는 가장 중요한 가치가 무엇이냐고 질문한다면 그것은 객체지향과 테스트라고 한다. 엔터프라이즈 앱은 변화가 계속해서 일어난다. 이런 변환에 대응하는 첫 번째 전략이 확장과 변화를 고려한 객체지향적 설계와 그것을 효과적으로 담아낼 수 있는 IoC/DI같은기술이다. 두번째 전략은 만들어진 코드를 확실할 수 있게 해주고, 변화에 유연하게 대처할 수 있는 자신감을 주는 테스트 기술이다. 2.1 UserDaoTest 다시 보기 테스트의 유용성 테스트 코드를 작성하게 되면 자신이 작성한 코드가 제대로 작동하는지 확인할 수 있다. 이를 통해 코드의 결함(의존성)을 제거해가는 작업, 디버깅을 거치게 되고 최종적으로 테스트가 ..
EntityManagerFactory, EntityManager, PersistenceContext란? EntityManagerFactory란 데이터베이스를 하나만 사용하는 애플리케이션들은 일반적으로 EntityManagerFactory를 한개만 생성한다. 이 엔터티 매니저 팩토리로 엔터티 매니저를 생성할 수 있다. EntityManagerFactory는 Thread Safe해서 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드간에 공유해새 사용한다. EntityManagerFactory 정리 Hibernate에서는 SessionFactory(EntityManagerFactory) 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하다.(thread-safe) EntityManager를 ..
String, StringBuffer, StringBuilder 차이 String String 클래스는 변경이 불가능한 immutable 클래스이다. String 클래스를 사용하여 String의 문자열을 추가할 때 기존 할당된 메모리 힙영역에 문자열을 수정할 수 없다. 예를 들어 String 문자열에 +를 하여 문자열을 추가 할경우에 내부적으로 새로운 객체를 생성하게 된다. String data = "ABC"; data += "DEF"; 예를 들어 "ABC" 에 "DEF"가 추가되었기 때문에 한개의 String 객체가 사용되었다고 생각할 수 있지만, String 객체는 내부 데이터를 수정할 수 없으므로 새로운 객체를 생성하여 기존 data변수에 새로 생성된 String 객체를 생성한다. 아래는 그림으로 ..
토비의 스프링 이글은 토비님의 스프링책을 보고 요약한 내용입니다 1장 오브젝트와 의존관계 들어가며 스프링이 자바에서 가장 중요하게 가치를 두는것은 바로 객체지향프로그래밍이 가능한 언어라는 점이다. 자바 엔터프라이즈 기술의 혼란속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고 폭넓은 혜택을 누릴 수 있도록하는것이 스프링 철학이다. 그래서 스프링에서 관심을 많이두는것은 오브젝트의 생명주기이다. 그렇기 때문에 우리는 스프링이 어떤것이고, 무엇을 제공하는지 보다는 스프링이 관심을 갖는 대상인 오브젝트의 설계와 구현, 동작원리에대해 관심을 가져야한다. 1.1 초난감 DAO 먼저 간단하게 아래와같이 JDBC를 이용한 User CURD를 다룰것이다. 예제에서는 롬복을 사용하여 객체를 다룰것이다. 그리고 데이..
Java란 자바는 썬 마이크로 시스템즈에서 개발하여 1996년 1월 공식적으로 발표한 객체지향언어이다. 기본적으로 자바프로그램들은 JVM위에서 동작한다. JVM 위에서 동작하기 위해서는 자바 바이트코드가 필요하다. 이 자바 바이트코드는 개발자에 의해서 작성된 자바 소스코드(.java)를 자바컴파일러(javac)로 변환 된 코드(.class)를 말한다. 아래 간단하게 자바프로그램 특징을 정리해보았다. 자바 프로그램 특징 자바프로그램은 운영체제에 독립적이다. 객체지향 언어이기 때문에 유지보수가 용이하다. 자동으로 메모리관리를 해준다. 동적 로딩을 지원한다. 오픈소스 자료가 풍부하다. 자바프로그램은 안정적이다. JVM이란 JVM이란 JAVA Virtual Machine, 자바 가상 머신의 약자를 따서 주려 부..
Spring Web MVC 구조 MVC 먼저 Spring Web MVC를 알기 전에 MVC 단어를 살펴보자. MVC(Model View Controller)란 비즈니스 규칙은 표현하는 도메인 모델(Model)과 프레젠테이션을 표현하는 View를 분리하기 위하여 양측 사이에 컨트롤러를 배치하도록 설계한 디자인 패턴이다. Spring Web MVC 모듈의 전체적인 구조는 이 패턴을 중심으로 만들어졌다. 아래는 그림으로 표현한 MVC 모델이다. Spring DispatcherServlet Spring은 이러한 MVC 패턴을 구현하기 위해 다른 웹 MVC 프레임워크처럼 Front Controller 패턴을 사용하며 프레임워크의 여러 가지 기능을 제공하는 servlet 중심으로 설계되어 있다. 스프링에서 Fron..
- Total
- Today
- Yesterday
- javascript
- Angular
- Spring
- tobi
- eslint
- Quasar
- Github
- Jenkins
- https
- JPA
- kotlin
- OS
- vue
- batch
- jenkins #mac방화벽
- Collection
- IntelliJ
- SSH
- network
- OAuth
- Linux
- Gradle
- aws
- #linux
- Chache
- Infra
- java
- HMAC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |