programming language 67

리플렉션(Reflection)과 jdk 동적 프록시(dynamic proxy)

1. 프록시란? 프록시(Proxy)는 '대리'라는 의미다. 다른 개발자분들 께서 이미 잘 정리를 해주셨다. (참고하려면 여기 클릭) 그리고 이 프록시를 사용하는 프록시 패턴에 대해서 전에 학습했다. 뒤에 올 내용도 이것을 바탕으로 추가를 할 예정이다. (프록시 패턴 바로가기) 2. 프록시의 단점? 전에 프록시 패턴의 구조를 한 번 다시 보고 가겠다. 현재 특정 객체에 대한 접근을 제어하거나 기능을 추가하고 있다. 별 거 없어 보이지만 RealSubject가 Subject를 구현하는데 이것을 FirstProxyCache에서 캐싱 처리를 하고 있는 것이다. 만약 FirstProxyCache의 기능이 맘에 안들어서 다른 class를 통해 proxy기능을 구현하려고 한다면 어떻게 해야 할 까? 그러면 새롭게 c..

제네릭 이해하기

사실 제네릭은 어렴풋이 대~강 사용하는 법을 알고있지만, 무언가 내가 직접 어떤것을 만들고 적용하려면 그렇게 바로 할 수 있지는 않았다. 이번에 제대로 제네릭에 대해서 이해하도록 하고, 실제로 어떻게 쓰이는지도 알아볼 것이다. 참고 서적은 Java의 정석이다. 1. Generic란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. => 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 2. 제네릭 예시 1 Person.java => 일반 class package com.example.generic; public class Person { Object pocket; public Object getPocket..

interface vs abtract class

공부를 하는 와중에 추상클래스를 사용할 일이 있었는데 인터페이스와 추상클래스의 차이점을 이야기하라고 하면 이야기를 못하겠었다. 그래서 이번 기회에 두개의 차이점에 대해 다시 알아보고자 한다. 1. 인터페이스(Interface)란? interface 는 한 클래스를 구현하기 위해 사용되는 청사진입니다. 인터페이스는 구체적인 메소드를 포함하지 않습니다. 인터페이스는 초기화 될 수없지만 인터페이스를 상속하는 클래스들은 초기화 할 수 있다. 인터페이스는 인스턴수 변수를 절대 포함하지 않지만, public static final 변수를 포함할 수 있다. 인터페이스의 모든 메소드는 추상 메소드다. *추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니..

BigInteger 사용하기

leetcode 에서 문제를 푸는중 문제가 하나 발생했다. 링크 : https://leetcode.com/problems/plus-one/ 해당 문제는 int배열을 변환하는 것인데 필자는 string으로 전부 성분을 하나의 문자열로 합쳐서 다시 int 배열로 만드는 작업을 시행했는데 이를 시행하는 와중에 int형의 범위를 벗어나는 문제를 겪었다. import java.math.BigInteger; class Solution { public int[] plusOne(int[] digits) { if(digits == null || digits.length == 0) return null; String stringNum = ""; for(int component : digits){ stringNum += I..

Jar 과 War의 차이점은?

필자는 Inflearn을 강의를 굉장히 자주 듣는다. 최근 Spring 기본 강의를 듣고있는 중에 Spring initializr에서 어떤 프로젝트는 Jar로, 다른것은 War로 다운을 받는데 이 두개의 차이점을 잘 모르겠다! 그래서 이 글을 통해 공부할 것이다. 우선 google에 간단하게 Jar(Java ARchive) vs War(Web application ARchive) 를 검색해보니 맨 상단에 stack overflow가 있다. 1) https://stackoverflow.com/questions/5871053/difference-between-jar-and-war-in-java 들어가서 보니 이런 말이 있다. From Java Tips: Difference between ear jar and..

HashTable, HashMap, ConcurrentHashmap

우선 hash가 무엇인지 알아봐야 하겠다. Hash란 정확히 무엇을 말하나? Humors get you through the tough time! Have fun :) 1. Hash이란? key와 value가 쌍을 이루는 자료구조. 필요한 데이를 키 값을 통해 빠르게 탐색이 가능하며, 고유의 해쉬함수를 통해 데이터에 접근하는 구조. 그런데 이러한 Hash도 단점이 있는데... Hash collection이 일어난다고 한다. - 서로 다른 키의 해쉬 연산 결과가 같을 때 문제가 생기는 현상 참고: https://jroomstudio.tistory.com/10 참고 : https://siyoon210.tistory.com/85 2. HashTable A hash table is a type of data s..

DOM 이란?

https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction DOM 소개 - Web API | MDN 이 문서는 DOM에 대한 개념을 간략하게 소개하는 문서이다: DOM 이 무엇이며, 그것이 어떻게 HTML, XML (en-US) 문서들을 위한 구조를 제공하는지, 어떻게 DOM 에 접근하는지, API 가 어떻게 사용되는지에 developer.mozilla.org MDN사이트는 사기다 모든 정보가 다있다 ! ㅠㅠ 외쳐 MDN 만세! 하여간... REACT를 공부하는 와중에 DOM이 나왔는데 DOM을 많이 접하지만 정확히 설명하라고 하면 못할거 같아서 이렇게 공부를 한다. DOM이란 그래서 뭐냐? 문서 객체 모델(The Do..

Callback 과 Promise 사용하기!

거룩한 일요일 필자는 Callback과 Promise에 대해 공부를 했다. https://tech-monster.tistory.com/43 Callback Fucntion 이란? 의미를 파악해 보자. ???? call me back~ 뭔가 전화를 다시 걸라는 건가...? (내 번호 안알랴줌) 그 느낌 그대로 callback을 다시 본다면 단어 뜻 자체가 회신하다/답신하다 라는 뜻을 지닌다. 그러면 callba tech-monster.tistory.com 간단하게 callback에 대해서 알고싶으면 callback Function이란? 이라는 블로그를 참고해주세요 나는 우선 강의를 듣고 그다음에 docs 를 찾아보려고 하는데 좋은 내용을 단시간에 함축해서 전달해 주면 시간 효율이 배가 되기 때문이다 물론 ..

Let vs Var? 무엇을 써야 할까?

여러분~ let 대신에 Var를 써야고 한답니다. 사실 이번에 회사에 입사하면서 프론트에서 jQuery를 이용할 일이 많아졌다. 문제는 아직도 회사에서 Var를 이용해서 변수를 선언하는 것이다. Let은 ECMAScript 6에서 새로 도입된 것으로 var와 같이 변수를 선언할 수 있다. 그러면 둘의 차이는 뭘까?? 우선 내가 참고해서 공부한 영상 링크를 달아놓겠다. https://www.youtube.com/watch?v=OCCpGh4ujb8&ab_channel=%EB%93%9C%EB%A6%BC%EC%BD%94%EB%94%A9by%EC%97%98%EB%A6%AC 그렇다 나는 그녀의 노예다... 여기 나오는 내용으로 코드를 정리해서 보여주겠다. console.log(age); age = 4; consol..

Async vs Defer 는?

모든 내용은 Youtube의 ellie teacher가 한 것을 기반으로 한다. https://www.youtube.com/watch?v=tJieVCgGzhs&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=2&ab_channel=%EB%93%9C%EB%A6%BC%EC%BD%94%EB%94%A9by%EC%97%98%EB%A6%AC 영상을 보길 원하면 위에 들어가면 된다. 그렇다... 나는 그녀의 충실한 노예다... 하여간 여기서 script를 불러오는 방식에서 Async와 Defer가 있다. 우선 가장 기본적으로 사용하는 html 형식을 보자 . 브라우저에서 위에서 부터 천천히 html을 읽어들이기 시작한다. 순차적으로 쭉 내려오다가 script를 만난다. 어! test..