반응형

전체 글 68

[Python] 파이썬 Comprehension 에 대해서 알아보자.

오늘은 파이썬 Comprehension 에 대해서 알아보는 시간을 갖도록 하겠다. Comprehension의 개념을 알면 List, Set, Dictionary에서 보다 간결하게 데이터를 가져올 수 있다. (1) 정의 - 다른 Sequence로 부터 새로운 Sequence (Iterable Object)를 만들 수 있는 기능. - 단, if 조건식에서 다중 조건은 and만 가능하다. (or은 불가) (2) 종류 ① List Comprehension - List Comprehension은 입력 Sequence로부터 지정된 표현식에 따라 새로운 리스트 컬렉션을 빌드하는것이다. - [if 조건식] 에서 [ ] 은 리스트 괄호가 아니라, 옵션의 뜻을 나타낸다. 즉, 조건이 있을때만 넣으면 된다. [ 출력표현식 ..

Programming/Python 2021.10.18

[Java] String / StringBuilder / StringBuffer 에 대해서 알아보자.

오늘은 Java에서 String / Stringbuilder / StringBuffer 를 알아보는 시간을 갖도록 하겠다. Java에서는 문자열을 다루는 클래스로 String, Stringbuilder, StringBuffer가 있다. 연산이 많지 않은 상황에서 어떤 클래스를 사용하더라도 문제가 되지 않지만, 연산이 많아지고 멀티스레드 등 상황이 발생하면 클래스의 특징을 이해하고 잘 사용하도록 해야한다. 크게 보면 2가지로 나눌 수 있다. 바로 String 과 StringBuilder / StringBuffer 이다. (1) String 다른 두 가지 클래스와 String의 차이점은 String은 불변(Immutable)속성이라는 점이다. (StringBuilder와 StringBuffer는 가변(Mut..

[Database] In-Memory DB(인메모리 디비)에 대해서 알아보자.

오늘은 데이터베이스에서 In-Memory DB(인메모리 디비)에 대해서 알아보는 시간을 갖도록 하겠다. (1) 정의 - 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 프로그램이다. - 데이터 양의 빠른 증가로 데이터베이스 응답 속도가 떨어지는 문제를 해결할 수 있는 대안이다. - 전형적인 디스크 방식은 디스크에 저장된 데이터를 대상으로 쿼리를 수행하지만, 인 메모리 방식은 메모리상에 색인을 넣어 필요한 모든 정보를 메모리상의 색인을 통해 빠르게 검색할 수 있다. 저장 장치에 데이터를 사용하면 느린 이유? - 외부 저장 장치에 있는 데이터를 읽고자 할 경우, 해당 데이터를 곧바로 사용할 수 없다. 데이터를 읽어서 메모리에 올리고, 메모리에 올라간 데이터를 읽어서 사용할 수 있다..

[Database] 쿼리최적화에 대해서 알아보자.

오늘은 데이터베이스 쿼리최적화에 대해서 알아보는 시간을 갖도록 하겠다. (1) 쿼리 최적화가 필요한 이유 - 쿼리 최적화는 데이터를 빠르게 가져오기 위함이다. - 비용 감소와 서비스의 질을 높히기 위해서 쿼리 최적화는 필수이다. 어떤 서비스에의 한 페이지를 한 명의 사용자가 보기를 원한다. 이 때 페이지에는 여러 데이터가 담겨 있을 것이고 해당 데이터를 DB에서 빠르게 가져와야만 사용자에게 빠른 서비스를 제공할 수 있다. 하지만 데이터를 가져오는 속도가 느리다면 한 명의 사용자에게 제공되는 서비스의 속도 또한 느려질 것이다. 그러나 이러한 서비스를 한 명의 사용자가 아닌 많은 사람이 이용한다면 문제는 더욱 커지게 된다. 데이터를 가져오기 위해 쿼리를 날리는 행위는 DB 커넥션을 맺은 상태에서 이루어진다...

[운영체제] 데드락(Deadlock)에 대해서 알아보자.

오늘은 OS의 데드락(Deadlock)에 대해서 알아보는 시간을 갖도록 하겠다. (1) 개념 - 데드락은 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 즉, 프로세스가 자원을 얻지 못해서 다음 일을 처리하지 못하는 상태이다. 교착 상태라고도 말하는데 보통 시스템적으로 한정된 자원을 여러 곳에서 동시에 사용하려고 할 때 발생한다. 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다. ex) 프로세스 1이 리소스 1을 사용하고 있고, 리소스 2를 사용하기 위해 요청했으며 프로세스 2가 리소스 1을 사용하기 위해 요청했고, 리소스 2를 사용하고 있다면 프로세스 1 -> 리소스 1(사용 - Lock) / 리소스 2(요청 - ..

[Java] 불변 객체에 대해서 알아보자.

오늘은 java에서 불변 객체에 대해서 알아보는 시간을 갖도록 하겠다. (1) 개념 객체 지향 프로그래밍에 있어 객체 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 불변 객체는 read-only 메소드만을 제공하며, 객체의 내부 상태를 제공하는 메소드를 제공하지 않거나 제공하는 경우 방어적 복사(defensive-copy)를 통해 제공한다. 즉, 객체에 값을 할당하면 내부 데이터를 변경시킬 수 없다. (재할당은 가능하다.) 대표적인 예로 String, Integer, Boolean 등이 있다. (2) 장점 - 객체에 대한 신뢰도가 높아진다. (외부에서 임의로 내부의 값을 제어할 수 없다. 따라서 객체의 자율성이 보장) - 생성자, 접근 메소드에 대한 방어 복사가 필요없다. - 멀티스레드 환경에서 동기..

[Database] Transaction과 ACID에 대해서 알아보자.

이번 시간에는 Database에서 Transaction과 ACID에 대해서 알아보는 시간을 갖도록 하겠다. ACID의 개념을 이해하기 전에 우선 Transaction의 개념을 알아야한다. 데이터베이스에서는 데이터에 대한 하나의 논리적 실행단계를 트랜잭션(Transaction)이라 한다. 쉽게 말해서 여러 작업들을 하나로 묶은 단위이다. 예를 들어, 은행에서 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작으로 이루어져야 하는 것을 의미한다. 이 한 덩어리의 작업들은 모두 실행되거나, 실행되지 않는다. (all-or-nothing) ACID는 데이터베이스 트랙잭션이 안..

[운영체제] 프로세스와 스레드에 대해서 알아보자.

오늘은 기술면접 단골질문인 프로세스와 스레드에 대해서 알아보는 시간을 갖도록 하겠다. 프로세스와 스레드의를 이해하기 위해서는 프로그램/프로세스/스레드의 자세한 개념을 이해할 필요가 있다. 차근차근 알아보자. ① 프로그램 (Program) (1) 정의 - 어떤 작업을 위해 실행할 수 있는 파일 - 파일이 저장장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 한마디로 설치는 되어있지만 실행되지 않은 상태라고 생각하면 될것같다. ② 프로세스 (Process) (1) 정의 - 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 - 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 객체) - 운영체제로부터 시스템 자원을 할당받는 단위 - 오류로 인해서 종료가 될 때 다른 프로세스의 영향을 ..

[Windows 10] 원격데스크톱 IP기록 삭제하는 방법에 대해서 알아보자.

오늘은 Windows 10에서 원격데스크톱 사용후 남은 IP기록 삭제하는 방법 알아보는 시간을 갖겠다. 코로나 시국이 장기화되고 재택근무가 많아지면서 원격으로 업무를 진행하는 사람들이 많아졌다. 나 또한 코로나 시국이 아니더라도 Windows 원격데스크톱을 자주 사용하는 편인데 내 PC에서 원격접속 할때는 문제가 되지 않지만 내 PC가 아닌 공공 PC, 타 PC 등에서 원격 접속을 하는 경우가 발생하곤 하는데 이게 ip기록이 남아있게 된다. ip기록이 남게 되면 찝찝하기도 하고 보안상 좋지 않다. Windows에서 원격연결 기록을 쉬운 방법을 제공했다면 좋았겠지만, 안타깝게도 마냥 간단하지가 않아서 준비해봤다. 0. [ 원격 데스크톱 ] 여는 방법 시작 버튼 + R mstsc 입력 후 [ 확인 ] 을 클..

[ipTIME] ipTIME 공유기에서 내부 ip 수동 할당 하는 법에 대해서 알아보자.

오늘은 ipTIME 공유기에서 내부 ip를 수동 할당 하는 법에 대해 알아보는 시간을 갖도록 하겠다. 공유기 네트워크로 연결 될때 따로 설정하지 않으면 자동으로 ip를 할당하는데 일반적으로 WI-FI를 통해서 스마트 폰을 연결한다거나, LAN선을 꼽고 인터넷을 할때는 크게 문제가 안되지만 무선 프린터를 사용한다거나, 원격 데스크톱, 서버 운영등 고정된 내부 ip가 필요한 경우가 반드시 있다. 이러한 경우 내부 고정 ip 할당하는 방법이 여러가지가 있지만 공유기 설정에서 설정하는 법을 알아보자. 1. [ 192.168.0.1 ] 접속 후 로그인 -> [ 관리도구 ] 2. [ 고급 설정 ] - [ DHCP 서버 설정 ] - 등록된 주소 관리 : 고정된 내부 ip를 보여준다. - 사용중인 IP 주소 정보 : ..

반응형