자바

개발/Java

자바에서 모니터가 동작하는 원리 (with synchronized)

모니터란 모니터란 뮤텍스나 세마포어보다 더 고수준의 동기화 기법이다. 전공 수업에서는 세마포어를 편리하게 사용하기 위해 인터페이스를 제공한 것이 모니터라고 배웠었다. 부족하지만 수업을 듣고 정리해 놓은 글이 있다. https://devdebin.tistory.com/16#%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4-1 임계 구역과 임계 구역 해결 방법 2021. 10. 2. 00:51 2022. 6. 22. 15:30 복습을 위한 수정 시작 프로세스는 독립적으로 작업을 할 수도 있고 공유된 자원을 가지고 공동 작업을 할 수도 있다고 이전 장에서 언급했다. 이번에는 본격적으로 devdebin.tistory.com 자바에서의 모니터 모든 자바 객체는 모니터를 가진다. 여러 스레드가 객체..

독서/토비의 스프링

토비의 스프링 Vol.1 5장 서비스 추상화

실습 코드는 아래에서 확인 가능합니다. https://github.com/happysubin/book-study/commits/main GitHub - happysubin/book-study Contribute to happysubin/book-study development by creating an account on GitHub. github.com 5.1 사용자 레벨 기능 추가 이전 시간까지는 UserDao에서 User 객체를 단순히 CRUD 하는 작업만 가능했는데, 이번 파트 부터는 특별한 비즈니스 로직을 추가했다. UserDao에서 User 객체를 모두 가져와서 일정 방문 횟수와 추천 수를 넘기면 User 객체의 레벨을 올리는 로직이다. 레벨을 나타내기 위해 Enum을 사용했다. 이번 파트에서..

개발/Java

자바 제네릭(Generics)

백기선님이 과거에 진행했던 Java 스터디 14주차 스터디 입니다. 제네릭 사용법 제네릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 제네릭 클래스의 선언 class Box { //제네릭 타입 T를 선언 T item; void setItem(T item){ this.item = item; } T getItem() { return item; } } Box에서 T를 타입 변수라고 하며, Type의 첫 글자에서 따온 것이다. T라고 적지 않아도 된다. 타입 변수가 여러 개인 경우에는 Map와 같이 콤마를 구분자로 나열하면 된다. 기호의 종류만 다를 뿐 임의..

프로젝트

NextStep 자바 플레이 그라운드 with TDD, 클린코드 part 3

자바지기 박재성님이 운영하시는 NextStep 교육 웹사이트에서 수강한 자바 플레이 그라운드 with TDD, 클린코드에 대한 공부 기록을 남기려고 합니다. 이번 포스팅은 자바의 상속, 인터페이스에 관련된 좌표 계산기 미션에 관한 포스팅입니다. 강의를 통해 느낀 점 (피드백을 보기 전) 프로그래밍 요구사항에는 이전 미션과 크게 차이가 없었다. 기능요구사항도 좌표 입력 형식, 좌표 입력 값 범위 등 크게 특별하다고 느낀 부분은 없었다. 기억할 부분은 좌표가 2개면 직선 거리 계산, 좌표가 3개면 삼각형 넓이 계산, 좌표가 4개면 직사각형으로 계산하는 것이다. 직사각형인 경우에는 직사각형인지 validation을 해줘야 한다. 먼저 미션에서 필자는 enum을 적극적으로 사용하자는 생각을 했다. 도형의 좌표 ..

Debin
'자바' 태그의 글 목록