분류 전체보기 135 ArrayList Array의 단점을 해결한 것입니다. 미리 크기를 정해주지 않아도 됩니다. Array와 다르게 index는 단순히 몇번째의 데이터인지를 나타내는 역할입니다. 불연속적인 메모리 공간을 차지합니다. Array와 동일하게 데이터의 추가 삭제에 있어서 O(N)이라는 시간이 발생합니다. 장점 Array와 동일합니다. 동적으로 크기가 변경될 수 있습니다. 단점 Array와 동일합니다. 내부적으로 배열을 사용하기 때문에 배열이 꽉 차면 새로운 배열을 생성하고 옮기는 등의 오버헤드가 추가로 발생할 수 있습니다. Computer Science/Data Structure 2022. 10. 7. Array (배열) 선형 자료구조의 한 종류로 동일한 자료형의 데이터를 연속적으로 저장하기 위한 자료구조입니다. 연속적인 메모리 공간에 순차적으로 데이터를 저장합니다. index와 value의 쌍으로 구성됩니다. 배열은 최초에 선얼할 때 크기를 설정하고 그 크기로 고정됩니다. 논리적 저장 순서와 물리적 저장 순서가 일치합니다. 이 순서에 대한 식별자가 index 입니다. 배열의 원소와 원소 사이에는 자료형의 크기만큼 메모리 공간의 차이가 존재합니다. int형 배열의 첫번째 원소의 주소가 0이라면 두번째 원소의 주소는 4입니다. (int의 자료형의 크기는 4Byte) short형 배열의 첫번째 원소의 주소가 0이라면 두번째 원소의 주소는 2입니다. (short의 자료형의 크기는 2Byte) index를 통해 배열의 요소에 직.. Computer Science/Data Structure 2022. 10. 7. 선형 자료구조 vs 비선형 자료구조 선형 자료구조 선형 자료구조란 하나의 자료 뒤에 하나의 자료가 존재하는 것 입니다. 자료들간의 앞 뒤 관계가 1:1의 선형 관계를 이룹니다. 배열, 리스트, 스택, 큐가 이에 해당됩니다. 비선형 자료구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것 입니다. 자료들간의 앞 뒤 관계가 1:N 또는 N:M의 관계를 이룹니다. 트리, 그래프가 이에 해당됩니다. 참고자료 선형(Linear) / 비선형(NonLinear) 자료구조 Computer Science/Data Structure 2022. 10. 7. 초보자를 위한 Linux 기초 명령어 path 경로입니다. ~는 home directory를 의미합니다. .는 자기 자신을 의미하고, ..는 상위 directory를 의미합니다. ./donghwan 는 현재 directory에서 donghwan이라는 directory를 의미합니다. ../donghwan 는 현재 directory의 상위 directory에 있는 donghwan이라는 directory를 의미합니다. cd change directory를 의미 합니다. path와 함께 사용됩니다. cd ~ 또는 cd ./donghwan 또는 cd ../donghwan 등등으로 사용됩니다. 가장 많이 사용되는 명령어 중 하나입니다. ls list directory contents에서 유래된 명령어입니다. 현재 위치 또는 특정 path에 존재하는 모.. Computer Science/Programming 2022. 9. 25. Base64란? 8bit binary 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념입니다. Base64를 글자 그대로 번역하면 '64진법' 이라는 뜻입니다. 64는 2^6 이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII문자들을 써서 표현할 수 있는 가장 큰 진법입니다. 128 진법에는 128개의 기호가 필요한데 ASCII문자들은 128개가 되지 않습니다. a-z, A-Z, 0-9 62개의 문자와 나머지 2개 문자를 어떤 기호를 쓰느냐의 차이만 있지만 MIME에서 정의한 나머지 두개의 문자열은 +와 /이며, =는 끝을 알리는 코드로 쓰입니다. @Base64를 사용하는 .. Computer Science/Programming 2022. 9. 19. 암호화 암호화는 비밀을 다루는 방법이라고 볼 수 있습니다. 암호화는 인류가 기록을 시작한 이래로 다양한 유형으로 존재해 왔습니다. 고대 그리스인들은 '스키테일'이라는 도구를 사용해 메시지를 암호화했고, 제2차 세계대전에서는 독일이 그 유명한 '에니그마' 장비를 사용해 군사적/외교적 통신을 보호 했습니다. 특징 기밀성(Confidentiality) : 암호화된 내용을 알 수 없어야 합니다. 무결성(Integrity) : 내용이 원본과 같다는 것을 확신할 수 있습니다. 가용성(Availability) : 권한이 있는 사람(허가 받은 사람)만 정보에 접근할 수 있어야 합니다. 암호화는 단순히 볼 수 없다고 완성되지 않습니다. 위와 같은 3가지의 기밀을 지키기 위한 요소를 가지고 있어야 합니다. 보호되지 않은 데이터를.. Computer Science/Programming 2022. 9. 15. [Spring] Logging과 LoggingFramework Logging이란 시스템이 동작할 때, 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미합니다. 개발 과정 혹은 개발 후에 발생하는 동작에 대해 트래킹을 하여 예기치 못한 이슈를 진단 및 해결하는데 도움이 됩니다. 하지만 무분별한 로깅은 성능상 이슈를 발생할 수 있기 때문에 의미있는 정보를 적절한 수준으로 수집하는 것이 중요합니다. Java는 System.out.println()을 이용하거나 Logging Framework를 사용하여 로그를 남길 수 있습니다. # System.out.println() # 일명 sout, System.out.println()은 Java를 처음 접할 때부터 사용할 수 있는 간단한 로깅 방법입니다. 가장 편하고 확인하기 좋은 방법이지만 성능에 영향을 많이 주.. Domain/Spring 2022. 9. 2. Singleton Pattern 인스턴스가 오직 1개만 생성되야 하는 경우에 사용되는 패턴입니다. 시스템 런타임, 환경 세팅에 대한 정보 등 인스턴스가 여러개일 때 문제가 생길 수 있는 상황에서 싱글턴 패턴을 사용합니다. 인스턴스가 1개만 생성되는 특징을 가진 싱글턴 패턴을 이용하면 하나의 인스턴스를 메모리에 등록해서 여러 스레드가 동시에 해당 인스턴스를 공유하여 사용하게끔 할 수 있으므로 요청이 많은 곳에서 사용하면 효율을 높일 수 있습니다. 싱글턴을 만들때 동시성(Concurrency) 문제를 고려해서 싱글턴을 설계해야합니다. 싱글턴을 사용하는 방법과 문제점을 알아보고 해결방법을 알아보겠습니다. 1. Eager Initialization public class SingletonEagerInit { private static Sing.. Computer Science/Design Pattern 2022. 1. 15. [Spring] Web.xml Web Application의 설정을 위한 Deployment Descriptor으로 Web Application이 최초 구동될 때 WEB-INF 디렉토리에 존재하는 web.xml을 읽고, 그에 해당하는 Web Application 설정을 구성합니다. contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServlet / Dis.. Domain/Spring 2021. 11. 30. [Java] Exception Error와 Exception Java는 오류가 발생하거나 발생할 여지가 있는 여러 상황에 대한 예외를 만들어 두었습니다. 오류(Error) 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미합니다. OutOfMemory나 StackOverFlow처럼 일단 발생하면 복구할 수 없는 오류입니다. 예측하여 방지할 수 없는 영역입니다. 예외(Exception) 개발자가 구현한 로직에서 발생한 실수나 사용자에 의해 발생하는 영역으로 오류와 달리 개발자기 미리 예측하여 방지할 수 있습니다. 오류와 예외 모두 Throwable을 상속 받습니다.Throwable 클래스 내부의 설명을 인용하여 설명하자면 Java 언어의 모든 오류 및 예외의 슈퍼클래스입니다. 예외 상황이 발생했음을 나타내기 .. Language/Java 2021. 11. 26. 이전 1 2 3 4 5 6 ··· 14 다음