반응형

자바 6

태태개발일지 - 김영한 자바 고급

람다 람다식은 함수형 인터페이스(추상 메서드가 하나인 인터페이스)의 인스턴스를 간결하게 표현하는 방법이다.Java 8부터 도입된 기능으로, 코드의 길이를 줄이고 가독성을 높여줍니다. 람다는 메서드만 전달하며, 익명클래스보다 더 간단하게 함수 객체를 만들 수 있습니다. 단, 람다는 함수형 인터페이스에만 사용할 수 있고, this 키워드는 외부 클래스의 인스턴스를 참조합니다 익명클래스 익명클래스는 이름이 없는 클래스로, 주로 일회성으로 인터페이스나 추상클래스를 구현할 때 사용한다. 예를 들어, Comparator나 Runnable 같은 인터페이스를 구현할 때 별도의 클래스를 만들지 않고 코드 내에서 바로 정의할 수 있다. 익명클래스는 여러 메서드를 구현할 수 있고, 내부에 필드나 초기화 블록도 선언할 수 있..

JAVA 2025.05.20

태태개발일지 - 고급 java (김영한) 컬랙션 동시성

전 글에서 CAS 연산을 다룬 후  컬랙션 동시성에 대해 글을 작성해보려한다. Collection 동시성? 자바에서는 List, Map, Set 컬랙션들은 기본적으로 동기화가 되어있지 않기 때문에, 멀티쓰레드 환경에서 사용할 경우 동기화를 고려해야한다.해결방법 1. 프록시를 사용하여 synchronized를 메서드 마다 붙여서 동시성을 보장해준다. 2. Collections.synchronizedXXX() 이라는 동기화된  컬렉션을 사용한다.  사실 1번과 2번 둘다 사용할 수 는 있지만, 현업에서는 더 간편하고 효율적으로 사용하기 위해서 java.util.concurrent를 사용한다. 종류(1) Concurrent List클래스특징CopyOnWriteArrayList- 읽기 연산이 많고, 쓰기 연산이..

JAVA 2025.03.19

태태개발일지 - 레코드

레코드토비의 스프링을 수강하는데 레코드를 사용하여 궁금해서 서칭해봤다.  자바에서 레코드란?  불변객체이다.  불변객체를 만들 때1. getter()2. setter()3. 생성자4. toString 두가지의 속성만 가지는 클래스를 생성하려고 해도,  너무나 많은 코드가 필요하다 이를 Boilerplate Code 가 많다. 라고한다.  Boilerplate Code과거 신문사에서 신문마다 강철로 찍어내는 것을 뜻하고 (자주 반복되는 코드)를 의미힌다. 레코드 사용이유 필드값 추가시 보일러코드 수정이 일어난다. 레코드 사용예시선언동시에 사용할 필드값을 사용해야한다.정적필드는 사용가능. public record Person(String name, int age) {} 데이터를 get 할 때. person...

JAVA 2024.12.25

태태코딩 - 객체지향 원칙

객체지향 1원칙 : 협력에 필요한 행동을 먼저 결정하고, 행동에 적합한 객체를 나중에 선택하라.2원칙 : 객체의 행동을 먼저 구현하고, 행동에 필요한 데이터를 나중에 선택하라.  절자적인 설계의 문제점 1. 프로세스와 데이터를 나누어서 설계한다. 2. 모든 상황의 getter와 setter를 설정해야했다. ex) 1. 프로세스와 데이터를 나누어서 설계한다는 뜻의 예reservation service 에서 예약이라는 행동을 하기위해서 주문 정보와 여러가지를  가져오게 되는데. 만약 reservation service에서 주문의 총 가격을 계산한다거나, 단순히 예약에 관한 메서드가 아닌, 모든 프로세스가 따로 만들어진다면, 유지보수가 힘들어진다.  유지보수가 힘들어지는 이유: 이를 절차적인 프로그래밍이라고 ..

객체지향 2024.12.25

태태개발일지 - Exception

예외처리 *throw로 예외를 발생시킬 수 있다. **thorws는 밖으로 예외를 던진다는 뜻* 체크예외특징: 1. 예외가 일어났을 때 throws 로 예외를 넘기거나 처리를 해주어야 한다.         2.{try catch}를 통해서 예외를 처리할 수 있다. 예외를 처리하지않고 계속 밖으로 예외를 던지다보면 runtimeExpetion이 뜬다. 그러면 프로그램이 멈추게된다.중간 로직에 예외를 잡지않아도 컴파일 에러가 뜨게 된다. 장단점:          장점: 꼭 예외를 잡아야만 하기 때문에 개발자가 실수로 넘겨도 확인할 수 있다.         단점: 일일이 싹다 잡아줘야하기 때문에 복잡하다. 예시) extends Exception 언체크 예외 특징 : 1. 예외를 잡아서 처리하지 않아도 thro..

JAVA 2024.10.14

회고 10일차

오늘은 불금 금요일이고 상태는 나쁘지 않다. 오늘은 클래스, 객체, 생성자, 내부클래스에 대해서 다시 한번  생각해 볼 수 있는 시간이였고, 짧게 블로깅에 대해서 배웠다.  내가 지금까지 썼던 블로깅은 거의 일기였던 것.. 오늘 부터라도 블로깅에 대해서도 공부하고 연구해 보아야 겠다고 생각했다. 자. 객체지향에 대해서 총 정리를 해보겠다. 실제 생활에서는 무언가를 만드려면 설계도가 필요하고 그 설계도를 통해 만든 것은 움직이게 된다. 뭐 사람을 설계해서 만드냐 라고 말할 수 도 있지만. 사람이란 것을 만드는 것 보단, 사람이 움직이고 생각하고 실생활에 일어나는 것을 컴퓨터가 묘사하는 것을 객체 지향이라고 생각 하기로 했다. 클래스 -> 객체를 설계하기 위한 설계도 역할을 한다.class 클래스이름 {}이..

반응형