프로그래밍 41

[객체지향] 의존성 주입(DI) 및 의존성 역전(DIP)

Dependecy Injection - 디자인 패턴Dependecy Inversion Principle - 객체지향 원칙   수다수다처음 자바를 공부할 때, 의존성 주입과 제어의 역전 등등 여러 개념을 공부했지만 사실 이해가 제대로 안 되었다.이론으로 공부를 하니까.. 머리에서는 도대체 무슨 말인데 라는 생각 밖에 없었다...^^;;; 시간이 흘러 개발 경험 1년을 넘어 2년차를 바라보면서 우연히 의존성 주입 내용을 읽었는데무슨 이야기인지.. 이해가 되었다.그랬구나,, 그래서 그랬구나.. 완벽하게 이해한 것은 아니지만 내가 이해한 것을 최대한 남겨보려고 한다.  의존하다.먼저 의존성 주입을 하기 전에, 의존한다는 것이 무엇인지 알아야 한다. 의존한다를 아래 코드와 같이 보여줄 수 있다.// SpiderM..

[DataTable plug-in] 데이터 테이블 AJAX with serverSide

클라이언트에서 서버로 통신을 하려고 할 때, 여러 가지 타입을 사용할 수 있다. 예를 들어 가장 일반적인 application/json 또는 application/x-www-form-urlencoded 등이 있다. 해당 방법들을 사용해서 어떻게 데이터를 보낼 수 있는지 정리를 하려고 한다. application/json contentType에서 applicayion/json을 작성 data에서 return type을 JSON.stringify 를 사용해서 보내면 된다. Spread Operator 방법을 사용해서 합쳐준다. JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 자바에서 Map 객체로 받아서 데이터를 쉽게 처리할 수 있다. $('#examp..

[DataTable plug-in] 데이터 테이블 생성

데이터 테이블 플러그인의 사용방법에 대해 알아보겠습니다. HTML 준비 아래와 같이 HTML table 태그를 준비하면 된다. DataTable 생성 방법 type: 요청 보내는 방법 (GET, POST 등등) contentType: 요청 보내는 데이터 Type에 대해 정의하는 곳. dataType: 응답을 받는 데이터 Type을 정의하는 곳. data: 요청 보내는 데이터를 정의하는 곳이다. dataSrc: 응답으로 받은 데이터를 중간에서 조작 할 수 있다. columnDefs: 컬럼별 조작을 할 수 있는 곳. 생성 방법 1. jQuery의 selector를 사용해서 Id로 target_table을 가지고 있는 HTML 태그를 불러온다. $("#target_table").DataTable({ ajax:..

[DataTable plug-in] 데이터 테이블 컬럼 검색

💡 데이터 테이블 컬럼별 검색 및 검색 초기화 방법 에 대해 작성해 보았습니다. (※ 정답이 아닐 수 있습니다. 저만의 방법으로 구현했습니다.) 빠른 결론: 컬럼마다 값을 초기화하고 테이블을 draw 하는 방법이다. HTML 준비 검색에 필요한 컬럼 개수만큼 th 태그를 직접 생성해야 한다. ... 필요한 개수 만큼 ... DataTable 컬럼 생성 target_table의 Id를 가진 테이블 태그의 thead tr을 복사(clone)하고 추가(appendTo)하게 된다. target_table 테이블의 thead tr 중 첫 번째에서 th를 반복문(each)으로 호출하고 html을 추가한다. $('#target_table thead tr').clone(true).appendTo('#target_tab..

[DataTable plug-in] Datatable 에서 row 개수 보여주기

관련 기능 paging: 페이지 네이션 기능으로 전체 데이터를 나눠서 볼 수 있게 하는 기능이다. lengthChange: 사용자가 화면에서 페이지 당 몇 개의 데이터를 볼 수 있을지 설정할 수 있다. pageLength: 개발자가 코드에서 페이지 당 몇 개의 데이터를 볼 수 있을지 설정할 수 있다. 문제점 서버에서는 DB의 전체 데이터를 불러 왔지만, 화면(프론트)에서 10개밖에 보이지 않는다면? 해결 방법 두 개의 설정을 모두 false로 하면 전체 리스트 개수가 보이게 됩니다. paging과 lengthChange 기능은 default가 true 입니다. paging: false, lengthChange: false paging 이 비활성화이면 lengthChange 도 자동으로 비활성화가 되는 것..

[jQuery] .on 메서드

on 을 메서드라고 불러도 되는지 정확히 모르겠지만, 해당 글에서는 메서드라고 표현을 하겠다. on 메서드가 당연히 자바스크립트로 생각했지만, jQuery 에서 사용하는 메서드라는 것을 알고 너무 놀라 정리를 해보았다. Ps. $("#test").on(생략) 이면 당연히 jQuery 인데... (조금 멍청했다..) on 메서드 Description: Attach an event handler function for one or more events to the selected elements. 필수 매개변수: events, handler 선택 매개변수: selector, data .on( events [, selector ] [, data ], handler ) Example 아래 두 코드를 비교했을 때..

[객체지향] 생성자 with Java

본 내용은 인프런의 즐거운 자바 를 보고 정리했습니다. 생성자 생성자가 있으면 기본 생성자(매개변수가 없는 생성자)는 생성 되지 않는다!! 인스턴스를 사용할 때 생성자를 사용한다. ex) Car taxi = new Car(); 즉, 우리가 특정 클래스를 new 생성자를 사용한다. 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. 클래스 작성시 생서자를 만들지 않았다면 자동으로 기본 생성자를 생성한다. 예시 코드 코드로 쉽게 이해 해보자! 생성자를 private 접근 제한자로 설정하면 해당 클래스는 인스턴스를 생성할 수 없다.! 예제 01. package org.example; public class Car { private String name; // 생성자 // return typ..

[프로그래밍] Thread with Java

해당 내용은 인프런의 즐거운 자바 를 보고 정리한 내용입니다! 병렬화 할 때 고려해야 할 것들 메모리의 속도 CPU 캐시 메모리 디시크 네트워크 컨넥션 순차적 실행이 병렬실행보다 빠른 경우도 있다. 동시 실행에 따라는 오버헤드가 없고, 단일 CPU 알고리즘은 하드웨어 작업에 더 친화적일 수 있기 때문이다. 암달의 법칙(Amdahl's Law) 병렬 컴퓨팅을 할 경우, 일부 병렬화 가능한 작업들은 사실상 계산에 참여하는 컴퓨터의 개수에 비례해서 속도가 늘어난다. 이러한 경우 암달의 법칙에 의해서 전체 수행시간의 개선 효과는 병렬화가 불가능한 작업들의 비중에 크게 영향을 받게 된다. 아무리 컴퓨터의 개수가 늘어나더라도 속도의 한계는 정해져있다. 병렬 VS 병행 병행(Concurrent)은 멀티스레드 프로그래..

[객체지향] 4가지 특징

해당 내용은 인프런의 즐거운 자바 를 보고 정리한 내용입니다!  객체지향객체지향 프로그래밍은 내가 만들 객체들이 메모리에 올라간 후, 어떻게 서로 관계를 맺고 동작할 지가 정리돼야 할 수 있다. 엘런 커티스 케이는 객체 지향의 핵심은 "메시징"이라고 했다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈(클래스) 내부의 속성(필드)과 행동(메서드)이 어떤가보다 모듈이 어떻게 커뮤니케이션하는가에 달려있다.즉, 객체들 간에 커뮤니케이션이 일어난다는 의미이다. 그렇다면 메시징은 무엇인가?어떤 객체가 다른 객체의 메소드를 어떻게 호출하는 것을 우리는 메시징이라고 한다. 객체지향 프로그래밍을 한다는 것은 메소드가 언제 호출되고, 어떻게 호출되고, 메소드의 이름은 어떻게 지어야하는지 어떻게 호출해야하는지 고..

[탐색] DFS vs BFS - 간단 정리

💡 유튜브 및 인프런을 보고 정리한 내용입니다! 문제시 해당 글은 삭제하도록 하겠습니다.  DFS vs BFS 만약 우리가 넷플릭스의 드라마를 볼 때 어떤 유형의 스타일인가? 하나를 몰아본다  ⇒ DFS(깊이 우선 탐색)여러 개를 하나씩 본다 ⇒ BFS(너비 우선 탐색) 그래프: 여러 개채들이 연결되어 있는 자료 구조 / 정점(node)과 노드(edge)로 이루어진 자료 구조탐색: 특정 개체를 찾기 위한 알고리즘 그래프  + 탐색 = 그래프(를) 탐색(하는) 알고리즘  그래프로 정보를 정리하는 이유는 탐색을 하기 위해서 이다.(문제를 풀 때, 입력 값을 이차원 배열 등의 방법으로 정리한다.) 그래서 우리는 dfs 또는 bfs 를 검색하면 아래와 같이 그래프가 그려진 이미지들을 볼 수 있다.  DFS: ..