Set 컬렉션 클래스 Set 컬렉션 클래스는 Set 인터페이스를 구현한 클래스이다. Set 컬렉션 클래스는 요소의 저장 순서를 유지하지 않고, 같은 요소의 중복 저장을 허용하지 않는다. 따라서 중복을 제거해야 하거나 저장 순서가 중요하지 않을 때 자주 사용되는 컬렉션 클래스이다. 이러한 Set 컬렉션 클래스에 속하는 대표적인 클래스는 다음과 같다. 1. HashSet 2. TreeSet 간단하게 이 두 가지 클래스에 대해 알아보자. HashSet 클래스 HashSet 클래스는 Set 컬렉션 클래스에서 가장 많이 사용되는 클래스이다. HashSet 클래스는 hash 알고리즘을 사용하여 검색 속도가 매우 빠르다. 이러한 HashSet 클래스는 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장한다. H..
문제 https://programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 풀이 정말 어려웠지만 재밌는 문제였다. 풀이법이 잘 생각나지 않지만 생각만 잘한다면 코드 길이가 매우 짧고 명료하게 해결할 수 있다. 이 문제는 DP를 이용하면 해결할 수 있다. 나는 DP 배열을 다음과 같이 정의했다. DP[0][i][j] = (i,j) 좌표에 세로로 들어오는 경우의 수 DP[1][i][j] = (i, j) 좌표에 가로로 들어오는 ..
서버 관리의 어려움 서버를 관리하는 일은 매우 복잡하고 어려운 작업이다. 만약 서버를 개발할 때 개발 환경이 바뀌게 된다면 컴퓨터 세팅이나 프로그램 등을 처음부터 다시 설정해야 한다. 시스템 환경, 방화벽, 네트워크 설정, Dependency, 각종 개발 프로그램 설정 등... 이러한 방식은 매우 번거롭다는 문제점이 발생한다. 특히 DevOps나 MSA가 유행하면서 Micro Service들이 잘게 나뉘면서 관리가 더욱 복잡해지게 되었다. 게다가 새로운 툴은 끊임없이 나오고, 클라우드의 발전으로 설치해야 할 서버가 매우 많아지는 상황에서 서버 관리 방식의 변화가 필요했다. 이러한 상황 속 어려움을 해결해줄 도커(Docker)가 등장하게 되었다. 도커(Docker)란 무엇인가? 도커는 컨테이너 기반의 오픈..
String 클래스는 불변이다 자바에는 String, StringBuffer, StringBuilder 클래스가 존재한다. 자바에서 String 클래스는 보통 불변(immutable)하다. 즉, 한 번 초기화되면 변하지 않는다. 혹자는 String 클래스도 변한다고 말하지만, 사실 그것은 변하는 게 아니라 새로 생성한 것뿐이다. 예를 들어, String 클래스의 concat() 메서드나 "+" 연산자를 이용해 문자열의 변화를 주더라도, 그것은 문자열이 변경됐다기보다는, 새로 생성한 것이라고 봐야 한다. 자세한 내용은 아래 게시글을 참조하면 좋다. [JAVA] 자바 String Constant Pool 이란?, String "=="와 equals의 차이 String Constant Pool이란? 아래와 같..
NAC(Network Access Control)이란? NAC의 탄생 배경NAC는 말 그대로 네트워크 접근 제어를 뜻하는 것으로 엔드포인트(PC, 스마트폰 등과 같은 네트워크에 접속하는 모든 유무선 기기)가 네트워크에 접근하기 전 보안 정책 준수 여부를 검사하여 네트워크 사용을 제어하는 것을 말한다. 또한, NAC 시스템은 네트워크에 연결된 엔드포인트들의 여러 정보를 수집하여 엔드포인들을 분류하고 분류한 그룹의 보안 위협 정도에 따른 제어를 수행하기도 한다. 이러한 NAC는 어떻게 탄생하게 되었을까? NAC는 세계적인 컨설팅 회사인 가트너(Gartner) 그룹에서 새로운 네트워크 보안 모델을 제시한 것을 계기로 급속도로 확산 되었다. 사내망에 바이러스 같은 것이 침투하면 순식간에 사내망 전체로 퍼지게 되..
아스키 코드란? 아스키 코드(ASCII)는 American Standard Code for Information Interchange를 줄인 말이다. 이름 그대로 미국에서 정의한 정보 교환용 부호체계이다. 아스키 코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 1바이트로 구성되어 있는 아스키 코드는 8비트(==1바이트) 중 7개의 비트만 사용한다. 나머지 1비트는 Parity Bit이라고 불리는 오류 체크를 위한 비트로 사용한다. 예를 들어 이진법으로 1000001이면서 십진법으로 65는 문자 'A'를 나타낸다. 이처럼 알파벳을 포함, 영문 키보드로 입력할 수 있는 모든 기호들이 아스키 코드로 할당되어 있다. 매우 단순하고 간단하여 많은 곳에서 사용되었다. 하지만, 아스키 코드는 7개의 비트만을..
List 컬렉션 클래스 List 컬렉션 클래스는 List 인터페이스를 구현한 클래스이다. List 컬렉션 클래스는 객체를 순차적으로 저장한다. 객체를 인덱스로 관리하기 때문에 List 컬렉션에 객체를 추가하면 인덱스가 자동으로 부여된다. 이 인덱스를 이용해 객체를 검색하고 삽입, 삭제할 때 사용한다. 이러한 List 컬렉션은 요소의 저장 순서가 유지되고, 같은 요소의 중복 저장을 허용한다는 특징을 가진다. List 인터페이스에서 공통적으로 제공하는 주요 메서드는 다음과 같다. 메서드 설명 boolean add(E e) 해당 리스트(list)에 전달된 요소를 추가 void add(int index, E e) 해당 리스트의 특정 위치에 전달된 요소를 추가 void clear() 해당 리스트의 모든 요소를 제..
Java Collections Framework란 Java Collections Framework는 재사용이 가능한 Collection 자료 구조를 구현하는 클래스 및 인터페이스들의 집합이다. 간단히 말해 여러 가지 자료 구조들을 미리 만들어놓고 지원하는 라이브러리라고 생각할 수 있다. Java Collections Framework는 데이터를 저장하는 자료 구조에 따라 다음과 같은 주요 인터페이스를 정의한다. 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 여기서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속 받지만 Map 인터페이스는 구조상의 차이로 별도로 정의한다. 따라서 List 와 Set 인터페이스의 공통적인 부분은 Collection 인터페이스..
아틀라시안(Atlassian)이란? 아틀라시안은 오스트레일리아의 시드니에 기반을 두고 있으며 소프트웨어 개발자들을 타깃으로 하는 전사적 소프트웨어를 만드는 기업이다. 아틀라시안에서 제공하는 유명한 제품들로는 지라(Jira), 뱀부(Bamboo), 비트버킷(Bitbucket) 등이 존재한다. 카카오와 같은 국내 유명 대기업들에서도 아틀라시안이 제공하는 소프트웨어를 많이 사용하고 있다. 내가 입사한 회사에서도 아틀라시안의 지라, 뱀부, 비트버킷 등을 이용한다. 따라서 이에 대해 포스팅해보고자 한다. 우선 우리 회사에서 주로 사용하는 제품들만 소개해보도록 하겠다. 지라(Jira) 지라는 이슈 및 작업을 관리할 수 있는 협업 툴이라고 볼 수 있다. 큰 아이디어를 사용자 스토리, 이슈 및 작업으로 팀 전반에서 관..
서류 전형 & AI 면접 검사 현대 아이티앤이는 다음과 같은 4가지 항목에 대해 자기소개서를 작성해야 한다. 1. 현대백화점그룹이 지향하는 4가지 실천가치(열정/소통/창의/파트너십 중 택 1)와 부합하는 본인의 강점과 경험을 기술하여 주십시오 2. 본인이 지원하는 직무에 있어 다른 지원자와는 차별화된 역량 및 그와 관련된 경험 혹은 경력을 기술하여 주십시오. 3. 기존과 다른 새로운 변화를 시도했던 경험과 그를 통해 배운 점이 무엇인지 기술하여 주십시오. "새로운 기술 습득의 중요성" 4. 당사 지원동기와 입사 후 포부를 기술하여 주십시오. 1번이 조금 까다로웠지만, 나머지 문항은 일반적으로 자기소개서에 작성하는 항목이었기 때문에, 어렵지 않게 작성할 수 있었다. 서류 전형을 통과하면 AI 면접을 진행하..
서류 전형 LG CNS의 서류는 작성하기 수월했다. 자기소개서의 문항이 2문항으로 많지 않고, 글자 수도 많지 않기 때문에 자기소개서 작성에 대한 부담을 많이 낮춰준 것 같다. 자기소개서 문항은 다음과 같았다. 1. My Competency 지원분야와 관련된 구체적인 지식이나 경험을 기술해주십시오. 2. LG CNS에 지원한 동기와 입사 이후 꿈꾸는 것은 무엇인가요? 다른 회사들에서도 많이 물어보는 내용이기 때문에 작성하는데 큰 어려움은 없었다. 코딩테스트 및 인적성 LG CNS의 코딩테스트는 총 3문제를 180분간 풀게 된다. 문제에 대해 서술할 순 없지만, 난이도는 그렇게 어렵진 않은 편이다. 주로 구현 위주의 문제가 나왔고, 평소 코딩테스트를 열심히 준비했다면 어렵지 않게 해결할 수 있다. 인적성 ..
서류전형 이번 2022 상반기 LG전자 VS연구소 공채는 서류 전형이 존재하지 않았다. 따라서 모든 사람이 지원하기만 하면 서류전형은 통과되었다. 코딩테스트 및 인적성 나는 LG전자 뿐만 아니라 LG유플러스, LG CNS도 지원했다. 특이한 점은 3곳 중 1곳만 인적성 테스트를 봐도 다른 기업들도 모두 같은 결과를 공유한다는 것이다. 총 3번의 인적성을 보지 않아도 되어 매우 편리했다. 코딩테스트는 총 3개의 문제를 풀게 된다. 난이도는 그렇게 어렵진 않았으나, 3번 문제가 조금 난이도가 있었다. 문제를 알려줄 순 없지만, 평소 코딩테스트를 열심히 준비했다면 무난하게 풀 수 있는 수준이였다. 인적성 테스트는 딱히 준비하지 않았다. 모든 문제에 솔직하게 대답하였다. 다행히 코딩테스트 및 인적성 전형은 통과..