분류 전체보기 249

[Macbook] 유용한 유틸리티 추천

맥린이가 되었다. 너무나 행복하다. 코로나 때문에 배송이 늦어지긴 했지만 그래도 행복하다. 남자친구는 하루 차이로 시켰는데 아직도 안왔다. 하지만 먼저 받은 나의 일상엔 꽃이 폈다. 호호. 매번 윈도우로 노트북이나 데스크톱을 구매했기에 맥북을 사용하는 것은 처음이다. 미션 컨트롤 너무 편하다. 나도 모르게 노트북은 당연히 이렇지 하는 부분을 고쳐나가다 보니 시간이 순삭이다. 몇 달 거지처럼 살고 오래 행복하게 사용하자. 쨌든, 요즈음 사용하면서 편할 유틸리티를 설치하고 환경 구성하는 데에 정신없다. 나중에 맥북을 바꾸거나, 혹시 모를 포맷(?)을 대비해서 정리해둔다. pock - dock을 터치바로 이동해서 사용할 수 있도록 도와주는 애플리케이션. 터치 바 활용도를 높일 수 있다. 터치 바 너무 어색하다..

Daily 2020.03.08

[OS] 윈도우 부팅 디스크 버전 확인하기

윈도우 부팅용 USB의 버전을 확인해보자 1. 관리자 권한으로 cmd 실행한다. 2. 아래의 명령어를 실행한다. wimfile경로는 이동식 usb의 드라이브 에 해당하는 경로로 설정한다. dism /Get-WimInfo /WimFile:e:\sources\install.esd 여기서 e:는 부팅디스크(연결한 이동식 드라이브)에 해당하도록 수정해주면 된다. 명령어를 실행해서 확장자 .esd로 조회가 안된다면 .wim으로 수정하여 재진행한다. dism /Get-WimInfo /WimFile:e:\sources\install.wim [히스토리] win7으로 재설치를 해야 하는 일이 생겼다. 가지고 있는 부팅 디스크가 있는데 버전을 알지 못했다. 검색하여 위 명령어로 버전 확인하니 win10이었다. 필요한 wi..

CS/OS 2020.03.07

[OS] 운영체제 기초

일하면서 리눅스 서버를 운영하다 보면 리눅스 기반 기술, 운영기술의 필요성을 절실히 느낀다. 리눅스를 공부할수록 운영체제에 대한 기초 지식의 망각(?)을 느껴 정리하고자 포스팅한다. [운영체제 개요] 1. 운영체제의 이해 운영체제란? 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고 시스템 자원(기억장치, 프로세서, 입출력 장치, 정보, 네트워크 및 데이터 등)을 효율적으로 관리할 수 있도록 하는 프로그램들의 집합이다. 운영체제는 사용자와 컴퓨터 간의 인터페이스 역할을 담당한다. 운영체제는 각 프로그램을 유기적으로 결합시켜서 시스템 전체의 생산성을 향상할 목적으로 설계된다. 운영체제를 역할 중심으로 구분한다면 자원할당자와 제어 프로그램으로 구분할 수 있다. 자원할당자(Resource Allocator) :..

CS/OS 2020.02.29

[Network] OSI 7계층

OSI 7 Layer 출현 배경 전세계의 모든 컴퓨터가 하나의 마으로 연결되어 동일한 방법으로 통신을 하기 위해서는 프로토콜의 표준화가 필요하다. 복잡한 프로토콜들이 상호운용되어 동작하기 위해 기준 모델이 필요했다. OSI 참조 모델(OSI Reference Model, ISO/IEC 7498-1:1994)는 ISO에서 개발된 일종의 프로토콜 모델이다. OSI(Open System Interconnection) : 개방형 시스템 간의 연결을 의미한다. 개방형은 시스템의 종류나 구현 방법, 시스템 규모 등의 조건에 제약되지 않고 서로 다른 시스템끼리도 연결하여 통신이 가능하도록 한 것을 말한다. OSI 참조 모델의 의의 두 개의 네트워크가 동일한 통신 기능의 구현, 동일한 계층은 동등한 기능 제공, 동일한..

CS/Network 2020.02.23

[javascript] 콜백지옥을 탈출하는 q.js

Depth가 깊어지며 콜백 함수를 알아보기 힘든 피라미드 구조 . step1(function (value1) { step2(value1, function(value2) { step3(value2, function(value3) { step4(value3, function(value4) { // Do something with value4 }); }); }); }); q.js를 활용한다면 깔끔해지고 순차적인 비동기 처리를 가독성 높게 파악 가능하다. Q.fcall(promisedStep1) .then(promisedStep2) .then(promisedStep3) .then(promisedStep4) .then(function (value4) { // Do something with value4 }) .c..

Dev/JS & Jquery 2020.02.18

[Tomcat] catalina.sh 와 setenv.sh

스프링으로 외부 속성파일의 값을 @value 어노테이션으로 스프링 빈에 주입할 수 있다. 그런데 아무리 뒤져봐도 프로퍼티 파일에 관련된 내용이 없어 도대체 이 값이 어디서 가져오는 건지 찾아봤다. 알고보니 setenv.sh를 통해 설정한 값이었다. 톰캣 환경 설정에 대한 개념이 없어 정리한다. catalina.sh 톰캣의 catalina.sh 파일에는 다양한 설정이 존재한다. catalina.sh 파일에는 자바 옵션 설정 및 톰캣 로그 경로등 각종 설정을 저장할 수 있다. 이 때문에 설정 변경시 실수가 발생할 가능성이 높다.(유지보수에 큰 어려움 발생!). 만약 톰캣 버전이 업그레이드 되거나 서버 이전이 되는 경우 설정된 옵션을 반영하기 위해 조심히 추출해야한다. 그래서 추가 옵션을 설정하는 또다른 방법..

Dev/Web 2020.02.14

[자료구조] 재귀 알고리즘

[5장. 재귀 알고리즘] 1. 재귀의 기본 재귀란? 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라 한다. 재귀를 효과적으로 사용하면 프로그램도 간결하게 표현할 수 있다. 팩토리얼 구하기 음이 아닌 정수의 팩토리얼을 구하는 방법은 재귀적으로 정의할 수 있다. TODO 재귀 호출 소스코드 직접 재귀(direct) : 자기 자신과 같은 메서드를 호출하면 직접 재귀이다. 간접 재귀(indirect) : 메서드 a가 메소드 b를 호출하고, 다시 메소드 b가 메소드a를 호출하는 구조이다. int factorial(int n) { if (n == 1) return 1; // 1을 반환하고 재귀호출을 끝냄 return n * factorial(n - 1); // n과 factoria..

CS/Data Structure 2020.02.10

[자료구조] 스택과 큐

이전에 정리한 내용이 있지만, 책을 보며 예제 풀이를 진행하는 것이라 한 번 더 포스팅한다. [4장. 스택과 큐] 1. 스택 스택이란? 스택은 데이터를 일시적으로 저장하기 위한 자료구조이다. 후입 선출 방식(LIFO)으로 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다. push : 스택에 데이터를 넣는 작업 pop : 스택에서 데이터를 꺼내는 작업 top : push와 pop을 하는 위치 bottom : 스택의 가장 아랫부분 스택 만들기 생성자 IntStack : 생성자는 스택 본체용 배열을 생성하는 등 준비작업을 수행한다. 생성시 스택은 비어있으므로 스택 포인터는 0을 가리킨다. 푸시 메소드 push : 스택에 데이터를 넣는 메소드이다. 스택이 가득차서 푸시할 수 없을 경우는 예외처리를 해준다. 포인터값..

CS/Data Structure 2020.02.02

[effective-java] 동시성

[11장. 동시성] 스레드는 여러 활동을 동시에 수행할 수 있게 해준다. 단일 스레드 프로그래밍보다 동시성 프로그래밍은 어렵다. 공유중인 가변 데이터는 동기화해 사용하라 synchronized 키워드는 메소드나 블록을 한번에 한 스레드씩 수행하도록 보장한다. (=synchronized가 붙으면 단 하나의 스레드만 실행가능) 동기화는 배타적 실행뿐 아니라 스레드 사이의 안정적인 통신에 꼭 필요하다. Thread.stop은 사용하지 말자 쓰기와 읽기 모두가 동기화되지 않으면 동작을 보장하지 않는다. 이 문제들을 피하는 가장 좋은 방법은 가변 데이터를 공유하지 않는 것이다. (가변 데이터는 단일 스레드에서만 쓰도록 하자) 여러 스레드가 가변 데이터를 공유한다면 그 데이터를 읽고 쓰는 동작은 반드시 동기화해야 ..

Dev/Java 2020.01.15

[effective-java] 일반적인 프로그래밍 원칙

[9장. 일반적인 프로그래밍 원칙] 1. 지역변수의 범위를 최소화하라 - 지역변수의 범위를 줄이는 가장 강력한 기법은 가장 처음 쓰일 때 선언하기 지역번수의 범위는 선언된 지점부터 그 지점을 포함한 블록이 끝날 때 까지. - 거의 모든 지역변수는 선언과 동시에 초기화. try-catch문은 이 규칙에서 예외. 변수를 초기화하는 표현식이 검사예외를 던질 가능성이 있을 경우 try 블록안에서 초기화. 예외가 블록을 넘어 메소드까지 전파할 수 있으므로) 변수 값을 try 블록 바깥에서도 사용해야한다면 try 블록 앞에서 선언. 반복문에서는 반복변수의 범위가 반복문의 몸체 그리고 for 키워드와 몸체 사이의 괄호 안으로 제한된다. 반복 변수의 값을 반복문이 종료된 이후에 써야 하는 상황이 아니라면, while문..

Dev/Java 2020.01.14
반응형