반응형 전체 글117 객체지향 프로그래밍이란 : OOP [용어 정리] 객체지향 프로그래밍을 이해하기 위해 필요한 아래의 용어에 대해 먼저 설명하겠다.모듈모듈이란 프로그램을 구성하는 기능 단위의 독립적인 명령어들의 집합이다.모듈은 독립적이며 유일한 기능을 갖고 다른 프로그램이나 모듈에서 호출되어 재사용될 수 있어야한다.따라서 모듈은 다양한 형태로 존재할 수 있는데 메서드, 객체, 패키지, 라이브러리 등이 이에 해당한다.(상위 모듈 : 호출하는 모듈 / 하위 모듈 : 호출 당하는 모듈) 의존의존이란 모듈(또는 객체 등)이 동작하기 위해 다른 모듈의 자원을 사용하는 상황을 의미한다.이는 호출 당하는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향을 미친다는 것을 의미한다.의존성의존성의 존재 여부는 호출되는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향.. 2024. 6. 30. [스프링] 스태틱 메서드가 아닌 스프링 싱글톤 빈을 사용해야하는 이유 스프링의 application context에 관리되는 빈들은 기본적으로 싱글톤으로 관리된다. 상태를 갖지 않는 객체의 메서드를 사용하기 위하여 매번 인스턴스화 하는 것은 효율적이지 않다.스프링에서는 이러한 이유로 싱글톤 타입이라는 것을 지원하고 싱글톤 타입으로 스프링 빈을 관리할 땐, 속성 없이 메서드만 구현하여 사용을 한다. 허나, 이렇게 메서드만 사용할 목적이라면 굳이 인스턴스화할 필요도 없고 static으로 만들어서 사용해도 되지 않나라는 의문이 들수 있다.static 메서드를 사용하는 것과 싱글톤 빈의 메서드를 사용하는 것의 차이는 클래스 메서드이냐, 인스턴스 메서드이냐의 차이이다.즉, 인스턴스를 사용하냐 하지 않냐의 차이이고, 이는 객체지향적인 프로그래밍을 할 수 있냐 없냐로 나타난다. sta.. 2024. 6. 29. 스프링의 트랜잭션 추상화 트랜잭션 추상화우리는 추상화가 "공통적인 것을 취하고 차이점을 배제하는 것"이라는걸 잘 알고 있다.추상화를 통해 공통적인 부분을 분리하여 처리하도록 한다면 차이점에 대해서만 집중하여 개발을 할 수 있다.트랜잭션 추상화에서 적용된 공통점은 트랜잭션 처리이고, 차이점은 비즈니스 로직이다. 아래 코드를 보자.override fun create(member: Member) { val status = transactionManager.getTransaction(DefaultTransactionDefinition()) try { // 비즈니스 로직 val id = memberRepo.create(member) memberRepo.addRole(MemberRole(id, "USER".. 2024. 6. 25. 멀티모듈로 헥사고날 구현[2] - application layer를 pojo로 구성하기 멀티모듈로 헥사고날 구현[1] - 모듈 구성멀티모듈로 헥사고날 구현[2] - application layer를 pojo로 구성하기 비즈니스 로직을 포함하는 application layer를 프레임워크나 라이브러리 의존 없이 pojo로 구현하게 되면 외부 환경변화로 부터 비즈니스 로직을 지킬 수 있는 큰 장점을 얻을 수 있다.프레임워크, 라이브러리, 연동 소프트웨어가 바뀌더라도 비즈니스 로직은 수정할 필요가 없어진다.하지만 프레임워크나 라이브러리에서 지원하는 편리한 기능을 사용하지 못한다는 것은 단점이다. 개발을 하며 반드시 필요로하다고 생각했던 기능은 DI이다.스프링의 DI를 활용하면 의존관계를 new 연산자와 같은 코드를 통해 직접 설정하지 않고 어노테이션 기반으로 설정할 수 있다.의존관계는 변경사항이.. 2024. 6. 16. 이전 1 ··· 3 4 5 6 7 8 9 ··· 30 다음 반응형