아 이게 뭐임! 34

영속성 컨텍스트가 뭐임!

영속성 컨텍스트가 뭐임 ㅠㅠ 영속성이 무엇일까? 영속성은 데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성 자신을 생성한 작업이 종료되었어도 지속적으로 존재하는 상태 등등으로 설명한다. 메모리에 올라간 프로그램은 종료시에 모든 정보가 사라지지만 저장장치나 DB에 저장된 데이터는 프로그램이 종료되어도 데이터가 남아있다. 이러한 데이터는 영속성을 가졌다고 표현한다. JPA에서 영속성 컨텍스트란? 영속성 컨텍스트는 논리적인 개념이라고 한다. 영속성 컨텍스트는 "엔티티를 영구 저장하는 환경" "Entity가 영구적으로 저장되는 환경" "데이터를 영구적으로 저장하는 환경" "엔티티를 영구 저장하는 환경" 등등으로 정의하고 있었다. JPA 영속성 컨텍스트는 엔티티를 DB에서 가져올때 혹은 DB에 엔..

아 이게 뭐임! 2022.09.04

findById와 getById의 차이가 뭐임? [스프링JPA]

FindById와 GetById의 차이가 뭐임? 일단 JPA의 getById와 findById의 코드를 살펴보자. # getById * getById 코드 public T getById(ID id) { Assert.notNull(id, "The given id must not be null!"); return this.em.getReference(this.getDomainClass(), id); } * getById 주석 Returns a reference to the entity with the given identifier. Depending on how the JPA persistence provider is implemented this is very likely to always return a..

아 이게 뭐임! 2022.08.17

Telnet이 뭐임?

Telnet이 뭐임? 1969년에 개발된 텔넷은 원격 장치 또는 서버와의 통신을 위한 CLI(검은화면)를 제공하는 인터넷 프로토콜이다 원격 접속 서비스로서 특정 사용자가 네트워크를 통해 다른 컴퓨터에 연결할 수 있다. Telnet 어디에다 쓰나요? 텔넷에는 보안문제가 있다. 텔넷 통신을 사용하는것은 매우 쉽기 때문에 간단하게 포트가 열려있나 서버가 살아있나 확인할때 사용한다. Telnet 사용 예시 윈도우 도스창을 켠다 (cmd) s는 스크린샷 찍다가 같이 들어갔어요; Telnet 명령어 - telnet [ip] [포트번호] ex) telnet 118.67.129.193 80 ex) telnet 118.67.129.193 22 ex) telnet 118.67.129.193 8080 - telnet [도메..

아 이게 뭐임! 2022.04.19

JSON이 뭐임...!! (HTT...P..?)

최근 안드로이드 스튜디오 프로젝트에서 JSP 톰캣으로 유저 id정보를 송신해서 JSP에서 DB로 사용자 아이디를 전달하는 기능을 구현하고 있었다 구현에는 여러 방법이 있겠지만 많은 자료들이 JSON형태로 데이터를 바꾸어 JSP 톰캣서버로 HTTP를 이용해 데이터를 보내는 방식을 구현하더라 (똑같이 했는데 난 왜 안되지 ㅡㅡ;) 근데 이 보내는 데이터 형식이 뭔지를 모르겠는것이다... 자연히 이해가 떨어져서 자료를 더 보기 싫어지고... 그냥 이 기회에 JSON이 뭔지 정리해보기로 했다. Contents - HTTP...? - JSON...? HTTP...? HTTP는 웹사이트나 웹앱과 같은 클라이언트가 서버와 통신할 수 있는지에 관해 정의한 것이 HTTP입니다. Hypertext Transfer Prot..

아 이게 뭐임! 2021.07.30

Generic 두개 이상의 변수 사용

이전 포스팅에서는 Generic을 활용하여 여러가지 객체 타입을 인자로 받아낼 수 있는 것을 알게되었습니다. Generic으로 내가 변수를 1개가 아닌 1개 이상 받으려면 어떻게 해야될까요. Contents - Generic - Generic 이전 포스팅 Generic이 뭐임!!에서 제네릭의 등장 배경과 제일 간단한 제네릭의 활용형태를 보셨습니다. 밑의 코드는 저번 포스팅에서 나왔던 코드입니다. public class MyGeneric { T object; MyGeneric(T object){ this.object= object; } void showType() { System.out.println(object.getClass().getName()); } } main public class Main { ..

아 이게 뭐임! 2021.07.29

Generic이 뭐임!! [JAVA]

Contents - Generic 등장 배경 - Generic 왜 Generic이란 기술이 생겼을까요. 제네릭(generic)이란 클래스가 사용할 데이터의 타입을 외부에서 가져오는 것을 의미합니다. 기술이 사장되지 않고 사용되고있다는 것은 앞서간 사람들이 어떤 문제에 도달했고 그 문제의 해결방안으로써 해당 기술이 제안되었을 것입니다. generic 또한 마찬가지입니다. 말이 어려우니 간단한 예시를 보여드리겠습니다. 이클립스에서 간단한 java project를 만들어 봅시다. public class Main { public static void main(String[] args) { } } 이제 새로운 클래스를 하나 만듭니다. 저는 클래스 이름을 MyInteger로 하겠습니다. public class My..

아 이게 뭐임! 2021.07.28

NULL은 특별하다...!

이것 참 null null 한 포스팅이 아닐 수 없군...! "NULL"은 기본적으로 "알 수 없는 값이 누락됨"을 의미한다. 존재하지 않는 것을 나타내기 때문에 특별한 대우가 필요하다. (왜 여자친구를 만드는 프레임워크는 없는걸까...) 1 = NULL 1 NULL 1 NULL 위의 예는 NULL과의 모든 산술 비교 결과가 NULL 자체이기 때문에 작동하지 않습니다. (아니 대관절 도대체 없는값하고 어떻게 비교합니까..!) 심지어 NULL = NULL // 부..불가능...! ㅇ0ㅇ 어떻게 존재하지 않는 것을 존재하지 않는 것과 비교하겠습니까...! ㅇ0ㅇ...! 이게 끝이 아닙니다... NULL + 1 = NULL 10 - NULL = NULL NULL * 2 = NULL 100 ..

아 이게 뭐임! 2021.07.27

제어의 역전이 뭐임!! [Inversion of Control]

진짜 뭐냐구ㅜㅜㅠㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅜㅠㅜ Contents - 제어의 역전이 뭐임! - 의존성 주입이 뭐임??! - 둘이 뭔 차이임? 제어의 역전이 뭐임!! 제어의 역전은 하나의 설계 원칙입니다. 디자인 패턴이라고도 합니다. 프로그래머가 직접 객체의 생성과 소멸 객체간 관계같은 객체의 제어를 수행하는 것이 아니라, 여러 프레임워크, 컨테이너에서 제어를 수행하는 것 입니다. 확장 가능하고 모듈화된 프로그램을 구성하는 느슨한 결합을 달성하기 위해 다양한 종류의 컨트롤을 반전하는 것을 의미합니다. 여기에는 응용 프로그램의 흐름에 대한 제어와 개체 생성 또는 종속 개체 생성 및 바인딩의 흐름에 대한 제어가 포함됩니다. 이러한 제어의 역전은 클래스간의 결합을 느슨하게 설계하여 테스트가 가능하고 유지보수가 용이하게 ..

아 이게 뭐임! 2021.07.26

DTO랑 VO가 뭐임!! (코드 포함)

Contents - DTO가 뭐임! - VO가 뭐임! - 뭔 차이임? 세상에 코드 블럭 줄맞춤 진짜 잘했는데 자동으로 망가짐... DTO가 뭐임! - Data Transfer Object 의 약자로 데이터를 전달하기 위해 사용하는 객체이다. - 계층 간 데이터를 전달하기 위한 객체이다 특징 오직 getter / setter 메서드 만을 갖는다. 다른 로직을 가지지 않는다. 보내는 쪽에서 setter를 사용해 DTO에 데이터를 담아 보내고 받는 쪽에서 getter로 전달받은 DTO로부터 데이터를 꺼내쓰는 방식이다. 예시 class public class HumanDto { private String name; public String getName() { return name; } public void s..

아 이게 뭐임! 2021.07.25

Cache(캐시)가 뭐임!!!

Contents - Cache(캐시)가 뭐임! - Cache(캐시) 왜 씀! Cache(캐시)가 뭐임! 캐시를 설명하기에 앞서... 파레토 법칙을 알고계신가요...? 8:2의 법칙으로도 알려진 파레토 법칙이 캐시의 시작이었습니다. 파레토 법칙은 결과의 80%가 20% 원인에서 일어나는현상을 가르킵니다. 이 법칙은 여러곳에서 관찰되었는데 컴퓨터분야에서는 메모리의 20%가 전체 호출량의 80%이상을 차지한다는 것을 알아냈습니다. 여러분도 아시다싶이 제일 뚠뚠하고 느린 하드디스크부터 램 플래시메모리까지 속도에 따라 다양한 저장 장치가 있습니다. 메모리는 속도가 빨라질수록 가격도 가파르게 상승하는데 이러한 저장장치의 특성을 덕분에 마음같아서는 플래시메모리로 서버를 구성하고 싶지만 경제적인 이유로 불가능합니다. ..

아 이게 뭐임! 2021.07.24