728x90 반응형 개발 관련 강의 정리79 [10분 테코톡] 말랑의 스프링 이벤트 정리 회원 가입을 했을 때 쿠폰을 제공하는 기능을 위와 같이 만들었다. 코드 설명을 하자면 먼저 멤버 서비스를 보면 회원의 정보를 받아서 회원 객체를 만들고 이를 저장한다. 그리고 이후에 쿠폰 서비스의 give 메서드를 호출해서 회원에게 쿠폰을 제공하는 기능을 작성하였다. 쿠폰 서비스의 give 메서드를 보면 회원을 받아와서 쿠폰을 만들고 이를 저장하도록 기능 구형을 하였다. 이 코드를 패키지 관점에서 본다면 멤버 서비스에서는 쿠폰 서비스를 사용하기 때문에 멤버에서 쿠폰으로의 의존성이 발생하게 되고, 쿠폰 서비스는 멤버를 가지고 있어서 쿠폰에서 멤버로의 의존성이 발생하게 된다. 정리하면 의존성 사이클이 발생하게 되는데 의존성 사이클을 해결하는 방법은 여러가지가 있는데 인터페이스를 통한 의존성 역전을 통해서 의.. 2023. 6. 28. [10분 테코톡] 지토의 Auto Configuration 정리 Auto Configuration? 스프링 부트를 사용하기 이전에는 데이터베이스와 연동을 하기 위해서 위와 같이 직접 코드를 작성을 해주어야 했다. 그러나 스프링 부트를 사용하는 지금은 코드를 굳이 작성할 필요 없이 필요한 설정을 기입 해주면 데이터베이스와의 연동이 가능하다. 이러한 일은 바로 스프링부트로 인해서 발생하는 일이다. 스프링 부트를 사용하게 되면 드라이버 매니저 대신 커넥션을 얻어오는 과정을 추상화한 데이터 소스를 사용하게 되는데 이 데이터 소스는 스프링 부트가 애플리케이션 환경에 따라 자동으로 생성 해주고 빈으로 등록하게 된다. 이런 것을 Auto Configuration이라고 생각하면 된다. 즉 Auto Configuration이란 '필요한 빈을 자동으로 구성하는 기능이다.' 라고 할 수.. 2023. 6. 27. [10분 테코톡] 😼 피카의 TDD와 단위테스트 정리 TDD (Test-Driven Development) 란? 테스트 코드를 먼저 만들고, 실제 프로덕션 코드를 나중에 만드는 개발 방법 위 그림과 같이 기존 개발 프로세스는 설계, 개발, 테스트코드 작성 순서였다면 TDD는 개발 코드 작성보다는 테스트 코드를 먼저 작성하는 개발 방법 이다. 위 그림은 TDD 개발 사이클을 그림으로 나타낸 것이다. 먼저 RED : 테스트를 실패하고 Green : 테스트를 성공할 수 있게 프로덕션 코드를 구현한 후 Refactor : 프로덕션 코드와 테스트 코드를 리팩토링하는 세가지 사이클로 이루어져 있다. 왜 TDD를 만들었고 왜 사용할까? TDD를 사용하는 이유? - 변화에 대한 두려움을 줄여준다.(리팩토링이 편하다.) - 디버깅 시간을 줄여준다. - 동작하는 문서 역할을.. 2023. 6. 26. [10분 테코톡] 이오의 OSI 7계층 정리 1. OSI 7계층은 왜 만들어졌을까? - Open System Interconnection, 국제표준화기구(ISO)가 1977년에 정의한 국제 통신 표준 규약을 의미 - 통신의 접속에서부터 완료까지의 과정을 7단게로 구분, 정의 OSI 7계층을 발표하게된 과정 ● 네트워크의 시작 - 서로 다른 컴퓨터 사이에 정보를 주고받을 수 있게 됨 1900년대 중반 네트워크가 시작되었다. 이전에는 컴퓨터 사이에서 데이터를 주고받을 수 있는 수단이 없었기 때문에 어떤 연산을 수행할 때 컴퓨터 하나의 본체 안에서만 수행을 했다. 그렇기 때문에 컴퓨터가 연산할 수 있는 양에는 한계가 있었고 멀리 떨어져 있는 컴퓨터에 데이터를 전달하기 위해서는 하드디스크에 담아서 직접 이송을 해줘야 된다던가 하는 어려움이 있었다. 이 때.. 2023. 6. 25. [10분 테코톡] 🌱 시드의 제네릭 정리 제네릭 - 제네릭이란 클래스나 메소드에서 사용할 내부 데이터 타입을 외부에서 지정하는 기법 제네릭 정의를 이해하기 위해 먼저 제네릭클래스에 대해서 알아보자 제네릭 클래스 - 클래스 선언에 타입매개변수가 쓰인 클래스 class FruitBox { /* */} 단순히 클래스 이름 옆에 꺽쇠괄호와 타임 매개변수를 적어 주면 된다. 여기서 T가 타입 매개변수이다. 제네릭클래스 예시 class FruitBox { List fruits = new ArrayList(); public void add(T fruit) { fruits.add(fruit); } } FruitBox는 T 타입의 과일들을 가진 리스트를 가지고 있으며 add로 과일을 추가하는 메서드를 가진 클래스이다. FruitBox 클래스의 인스턴스 생성 과.. 2023. 6. 24. [10분 테코톡] 폴로의 Forward proxy vs Reverse proxy vs Load Balancer 정리 Forward proxy / Reverse proxy / Load Balancer 의 공통점 위와같이 그림들은 각각의 키워드들을 간략하게 그림으로 표현한 것이다. 조금씩 다르지만 대체적으로 비슷한 모양을 하고 있는 걸 알 수 있다. Proxy Server 추상화를 해보자면 위와같이 할 수 있다. 추상화를 했더니 클라이언트와 서버 사이에 징검다리를 해주는 서버가 하나 있는 것을 확인할 수 있는데 이런 서버를 프록시 서버라고 부르기로 했다. 나뉘어진 역할 포워드 프록시, 리버스 프록시, 로드 밸런싱은 모두 프록시서버로 행할 수 있는 기능이라고 생각을 해주면 이해하기 편할 것이다. Proxy Server의 정의 프록시서버를 한번 정리 해보자면 클라이언트와 서버 사이에서 대리인의 역할을 하는 서버 정도로 정리해.. 2023. 6. 23. [10분 테코톡] 레고의 Ajax 정리 Ajax란?(Asynchronous Javascript and XML) - 자바스크립트를 사용해서 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식 - HTML, CSS, JS, DOM, XML, XMLHttpRequest를 이용하여서 "새로운(2005년 기준) 접근법이자 싱글 스레드인 자바스크립트 엔진을 보완하기 위한 비동기 통신 방식 여기서 새롭다고 한 이유는 Ajax 적용 이전의 웹페이지 동작 방식을 보면 알 수 있다, 클라이언트가 최초 요청을 하고 응답을 서버에서 주고 html, css, js를 클라이언트에게 보낸다. 그리고 클라이언트는 그것을 사용해서 뭔가를 하다가 이벤트를 발생시키고 서버에게 요청을 하면 서버는 h.. 2023. 6. 22. [10분 테코톡] 달리의 WEB의 응답과 요청 과정 정리 브라우저 주소창에 주소를 입력하였을 때 어떠한 일이 일어나는지 살펴보자 그 전에 우선 택배를 보낸다고 가정했을 때 필요한 게 무엇일까? 우선 내용물을 담을 상자와 그것을 받을 사람의 주소 그리고 이름 그리고 받는 사람의 주소와 이름이 필요할 것이다. 이와 마찬가지로 웹에 데이터를 보낼 때도 받는 사람의 주소와 이름 그리고 보낸 사람의 주소와 이름과 그것을 담을 상자가 필요하다. 그렇다면 데이터를 보낼 때 주소에 해당되는 IP가 필요한데 보통 주소창에 데이터를 보낼 때 위와같이 도메인 이름을 적게된다. 그렇다면 브라우저는 이 도메인 이름만 받았을 때 어떻게 IP를 가져오게 되는 것일까? 이는 바로 클라이언트 브라우저에 도메인 주소를 입력했을 때 내부에 있는 소켓 라이브러리의 Resolver를 통해 OS에 .. 2023. 6. 21. 이전 1 2 3 4 5 6 ··· 10 다음 728x90 반응형