TIL 1일차알바 끝나고 빈둥대다가미래가 어두워지는게 느껴져 조금이라도 공부를 해야겠다는 생각이 들었다.자바에는 원래 날짜와 시간을 위한 Date 클래스만 있었다.그러나 기능의 한계때문에 Calendar라는 클래스를 새로 추가했다.Calendar 도 단점이 많기 때문에
Generics 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 쉽게 말하면 지네릭스는 타입 파라미터다. 원래는 변수를 파라미터로 사용했는데 타입(자료형)도 파라미터로 사용할 수 있다는 말이다. 가장 흔히 쓰는 자료구조인 ArrayList가 대표적인
Enum이란? Enum 은 enumeration을 줄인 것이다. enumeration은 사전에 따르면 열거라는 뜻이다. 그래서 열거형이라고 불린다. 열거한다는 것은 어떤 것을 나열한다는 뜻인데 무엇을 나열하는 걸까? 바로 상수다. 만
프로세스와 쓰레드 프로그램을 실행할때 프로세스는 OS에서 자원을 할당받는다. 프로세스는 자원과 쓰레드로 구성되어있으며 쓰레드는 호출스택을 생성해 작업을 작업을 수행한다. 프로세스라는 공장에서 쓰레드라는 일꾼들이 있다고 생각하면 이해하기 쉽다. 프로세스의 자원에 따라
람다식은 자바 8버전부터 추가되었다.람다식이 추가되며 자바는 이제 함수형 언어의 특성도 갖게 되었다.람다식이 무엇일까?두 정수형 파라미터의 최댓값을 반환하는 메서드다.이를 람다식으로 바꾸는 과정은 아래와 같다.한눈에 봐도 알아보기 쉽고 간결해졌다.그런데 그냥 이렇게만
iterate 은 반복하다라는 뜻이다.뭐를 반복할까?Collection 프레임웍의 요소들을 반복해서 읽어온다.Collection 프레임웍은 저장된 요소들을 읽어오는 방법은 표준화했다.Collection은 Iterable을 상속하는데 Iterable 안에는 Iterato
!자바에서는 하나의 java 파일에 public 클래스가 오직 하나만 존재해야 한다. 왜 그런 것일까?스택오버플로우의 질문의 답변을 보면장기적으로 봤을때의 코드 가독성과Java 지향하는 디자인과 설계, 유지보수에 용이하도록 하기 위함이라고 한다.추가 답변에는 이런 의견
생활 코딩의 OAuth 수업을 정리한 글입니다. OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. -위
프로젝트 진행중에 시큐리티 관련 xml 설정을 자바 설정으로 바꿔야 했다.정말 간단한 문제였지만 한시간을 삽질했다.나같은 사람이 없도록 글을 남겨야겠다고 생각했다.먼저 자신이 만든 Java 설정을 xml에 빈으로 등록하자.Java 설정에는 @Configuration 어
문서 객체 모델(The Document Object Model, 이하 DOM) 은 HTML, XML 문서의 프로그래밍 interface 이다.공식 문서에는 이렇게 정의돼있다.무슨 역할을 하는 것일까프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이
O(n) 에서 n은 연산횟수단순탐색 -> O(n)이진탐색 -> O(log n)연산횟수가 어떻게 증가하는지로 측정데이터의 크기가 늘어날 때 알고리즘의 실행 속도가 얼마나 증가할지 할 수 있음.원소 하나당 모든 원소를 비교한다(비교할 원소 수가 줄어들긴 함)빅오표기법은 상
데코레이터 패턴을 이용하면 어떤 오브젝트에 정적으로 또는 동적으로책임(기능)을 추가할 수 있다. -Baeldung-참고한 링크: https://www.baeldung.com/java-decorator-pattern데코레이터 패턴은 말 그대로 어떤 오브젝트에 대
스프링 AOP에는 프록시라는 존재가 나온다.뭔가 추상적인 개념이라 처음에는 이해하기 힘들었다.자바 프록시 패턴을 통해 조금더 이해해보자출처 : https://www.baeldung.com/java-proxy-pattern프록시 패턴은 데코레이터 패턴처럼 타깃의
임의의 데이터, 바이트열을 받아서 숫자로 반환하는 함수해시함수 요건일관성 -> 같은 데이터에 대해 일관적으로 같은 숫자만 반환해야함서로 다른 데이터에 대해 모두 서로 다른 숫자가 나와야 좋음해시 테이블 -> 해시맵, 맵, 딕셔너리, 연관배열으로도 불림키와 값을 가짐DN
템플릿 콜백 패턴은 변하지 않는 부분은 냅두고 변하는 부분은 커스터마이징하여 사용할 수 있게 해준다. 클라이언트는 템플릿 오브젝트의 메서드에 콜백을 구현해 제공한다.템플릿은 메서드 수행중에 제공받은 콜백 메서드를 호출하고 그 반환값을 사용해 나머지 작업을 수행한다. 그
Baeldung 을 번역한 글입니다.아주아주 좋은 글이 있길래 번역을 하기로 했다.자바 8 은 람다와 Effectively Final 이라는 개념을 소개했다.람다에서 쓰이는 지역 변수가 왜 effectively final 이나 final 이어야 하는지 궁금하지 않나?
다음 두 쿼리의 차이는 무엇일까Person 이 Account 안에 있다는 가정 하에이 쿼리는 person 을 갖고있는 모든 Account를 반환한다.그러나 나중에 c.getPerson() 처럼 person을 불러와야 한다면 해당 Account의 person을 불러와야
간혹 여러개의 칼럼을 조합해 기본키로 써야 하는 경우가 있다.이러한 키를 복합키라고 하는데 JPA에서는 객체지향적으로 복합 키를 지정할 수 있다. @Embeddable 애노테이션은 클래스에 붙힌다.이 애노테이션이 붙은 클래스는다른 엔티티 클래스에 내장되어 복합 키가
bin -> similar to C:\\Program Files directory in Windows commands like ls is in this directory. etc -> stores important system configuration fi
Standard UserAdministratorRoot User -> automatically created when we install Linux.has all the privileges. super usercat /etc/group -> list groupssudo
Windows.exe -> Executable File.msi -> Microsoft install packagesLinux.rpm -> Redhat Package Manager packages.deb -> Debian Packages (Ubuntu)sudo dpkg
help our hardware devices interact with our Operating System.Device Manager -> Microsoft management console that groups all devices and drvier/dev ->
used to keep track of files and file storage on disk.Windows is recommended to use NTFS FilesystemUbuntu is recommended to use ext4 FilesystemFAT32 su
Programs -> The applications that we can un.Processes -> Programs that are running.boot -> smss.exe -> winlogon.exe -> csrss.exe in Linux, processes h
Allow us to manage multiple machines from anywhere in the world.A protocol implemented by other programs to securely access one computer from another.
Protocol -> a defined set of standards that computers must follow in order to communicat properly.Computer Networking -> the name we've given to the f
IP AdressesIP addresses belong to networks, not to the devices attached to those networks.IP datagramA highly structured series of fields that are str
Transport layerAllows traffic to be directed to specific network applications.Application layerAllows these applications to communicate in a way they
Session Layer Facilitating the communication between actual applications and the transport layer.Takes application layer data and hands it off to the
A system that converts domain names into IP addresses.Gobal and highly distributed network service that resolves strings of letters into IP adresse fo
DNS in practice operates with a set of defined resource record types. They allow for different kinds of DNS resolutions to take place.The most common
DHCP is an application layer protocol that automates the configuration process of hosts on a network.Dynamic Allocation A range of IP addresses is set
Takes one IP address and translates it into another.NAT is a technology that allows a gateway, usually a router or firewall to rewrite the source IP o
VPNs are a technology that allows for the extension of a private or local network to host that might not work on that same local network.It's a tunnel
POTS and Dial-up Dial-up Connection A dial-up connection uses POTS( Plain Old Telephone Service) for data tranfer and gets its name becuase the conn
The ability for a protocol or a program to determine that something went wrong.Internet Control Message ProtocolICMP is mainly used by a router or rem
A technological approach where computing resources are provisioned in a shareable way, so that lots of users ge twhat they need, when they need it.Cor
The first 64-bits of any IPv6 address is the network ID,and the second 64-bits of any IPv6 address is the host ID.Is used for multicast.Multicast is a
External Data Bus A row of wires that interconnect the parts of computer. Registers Store data that our CPU works with. Memory Controller Chip The
Program used by devices to tell the CPU how to run them.Motherboard stores the BIOS in a special type of memory.UEFI performs the same function of sta
Remote Connection and SSH Remote Connection Allows us to manage multiple machines from anywhere in the world Secure shell (SSH) A protocol implement
Means keeping things hidden.In I.T., it means keeping the data that you have hidden safely from unwanted eyes.Integrity means keeping our data accurat
A DNS Cache Poisoning attack works by tricking a DNS server into accepting a fake DNS record that will point you to a compromised DNS server. A man-in
Encryption is the act of taking a message, called plaintext, and applying an operation to it, called a cipher.So that you receive a garbled, unreadabl
granted through the encryption-decryption mechanismgranted by the digital signature mechanismthe author of the message isn't able to dispute the origi
Hashing or a hash function is a type of function or operation that takes in an arbitrary data input and maps it to an output of a fixed size, called a
Certificates are public keys that are signed by a certificate authority or CA as a sign of trust. Lightweight Directory Access Protocol. An open indu
먼저 엔티티를 수정하려면 트랜잭션 안에서 엔티티를 수정하여영속성 컨텍스트가 변경 감지를 하게 하면 된다.삭제의 경우에도 트랜잭션 안에서 EntityManager 의 remove() 메서드를 호출하면 된다.하지만 이 방법으로 수백개 이상의 엔티티를 하나씩 처리하기에는 시
다음의 코드를 보자. (show-sql = true)이 코드를 실행하면 몇번의 쿼리가 날아갈까?잠시 생각해보자...............정답은 한번이다.첫번째 em.find()를 호출하면 먼저 영속성 컨텍스트의 1차 캐시를 탐색해해당 엔티티가 있는지 확인한다. 1차 캐
JPA는 마치 컬렉션을 수정하듯이 엔티티를 수정할 수 있게 해준다.em.find() 로 조회한 car는 영속성 컨텍스트가 관리하는 엔티티다.위의 코드를 실행하면 무슨 일이 일어날까?뭔가 허전해보이지만,DB에 UPDATE 쿼리가 날아간다.읭? 코드는 JVM 에서만 동작할
영속성 컨텍스트는 트랜잭션과 함께 살고 죽는다.트랜잭션은 비즈니스 로직을 담고 있는 서비스 계층에서 관리한다.따라서 컨트롤러에서는 영속성 컨텍스트가 존재하지 않는다.하지만 컨트롤러에서도 영속성 컨텍스트가 필요할 때가 있다.대표적으로는 지연로딩을 써야 할 때이다.그러나
데이터의 저장 순서가 유지되고 중복을 허용한다.기존의 Vector을 구현한 것이다.내부적으로 Object 배열을 이용해서 데이터를 순차적으로 저장한다.생성자를 통해 배열의 크기를 설정할 수 있다.장점배열의 크기가 충분할때, 순차적으로 저장하거나 맨 뒤에서부터 순차적으로
다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다.타입 파라미터라고 이해하면 쉽다.우리에게 익숙한 ArrayList 도 지네릭스를 사용한다.간단히 직접 지네릭 클래스를 만들어보자.T 를 타입 파라미터라고 하며 T가 아닌 다
프로세스란 간단히 말해서 실행 중인 프로그램이다. 프로그램을 실행하면 OS로부터 필요한 자원을 할당받아 프로세스가 된다.모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재한다.둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다.쓰레드를 프로세스라는 공장에서
100퍼센트 불합격이다.첫 면접이 하필 제일 가고싶던 회사였다.면접을 위해 몇일 전부터 두뇌 풀가동시키고 설명하는 연습을 엄청 했다.그런데 내가 갖고있는 지식을 다 보여주지 못해서 아쉬웠다.면접관님들이 연쇄질문을 하실 줄 알았다.그래서 질문에 대해 일단 대략적인 설명을