coding-factory의 등록된 링크

키자드에 등록된 총 1000개의 포스트를 확인하실 수 있습니다.

Tistory

[내돈내산] 가성비좋은 자취방 모션베드 세진침대 베리 모션베드 사용후기

보통 첫 자취방은 경제적인 상황을 고려하여 원룸 크기로 계약을 합니다. 이렇게 계약한 원룸 사이즈의 방은 굉장히 비좁습니다. 가구도 공간을 적게 차지하는 것들 위주로 배치하는데요. 그래서 침대를 두고 싶어도 침대 프레임까지 포함하지 않고, 매트리스만 두는 경우가 많습니다. 하지만 이렇게 매트리스만 둔다면 잠자는 공간과 생활 공간 등이 구분되지 않아 숙면을 쉽게 취할 수 없는 것은 물론이고, 항상 깨끗해야 할 잠자리가 바닥과 가까워 쉽게 더러워지기 쉽상입니다. 그렇기에 매트리스만 놓지 말고 침대 프레임을 함께 비치하는 것이 좋다고 생각합니다. 그리고 요즘 침대는 잠을 자는공간만은 아닙니다. 침대에서 컴퓨터도하고, TV도보고, 책도읽고, 공부도하고... 저같은 집돌이들에게는 집에 있을때 대부분의 시간을 침대..

Tistory

[제품리뷰] 여러가지 매트리스 종류와 차이점(스프링 vs 메모리폼 vs 라텍스)

좋은 수면을 위해서는 좋은 잠자리가 있어야 합니다. 잠자리는 힘든 하루 일과를 마치고 내일을 준비할 수 있도록 하는 휴식공간이므로 현대인에게는 매우 중요한 공간입니다. 항상 시간에 쫓겨 잠이 부족한 현대인들에게는 수면만큼은 돈을 투자해 수면의 질을 향상하는 것도 좋은 선택인 듯합니다. 저도 얼마 전 침대를 바꾸고 난 후 수면의 질이 상당히 개선되었답니다. 좋은 잠자리를 위해서는 침대 매트리스의 질이 매우 중요한데요 이번 포스팅에서는 여러 가지 종류의 침대 매트릭스의 종류와 차이점에 대해 알아보고 나에게 맞는 침대 매트리스를 고르는 방법에 대해 같이 고민해보도록 합시다. [제품리뷰] 가성비 좋은 자취방 모션베드 세진 침대 베리 모션베드 구매후기 좋은 매트릭스 교체시기 그렇다면 매트리스는 언제 바꾸는 것이 ..

Tistory

[내돈내산] 가성비 좋은 전동칫솔 샤오미 수케어 사용후기

안녕하세요 요즘들어 전자제품에 부쩍 관심이 많아진 코딩팩토리입니다. 오늘도 자취방에 하나쯤은 있으면 좋을만한 아이템을 가지고 왔습니다. 바로 전동칫솔입니다. 제품명은 샤오미 수케어 청춘판이라는 제품인데요. 지금 시중에 나와있는 제품들중에서 가장 가성비가 좋은 전동칫솔이라고 생각됩니다. 전동칫솔은 현대인이라면 하나쯤은 있으면 좋을 아이템입니다. 일반 칫솔의 경우 칫솔질을 하기 힘든 공간이 많습니다. 특히 윗니 그중에서도 어금니쪽과 입안쪽의 치아를 닦기는 힘든데요 하지만 전동칫솔을 사용하게되면 칫솔질이 필요없이 그냥 가져다 대기만 하고 있어도 플라그가 제거되기때문에 매우 편리합니다. 전동칫솔에는 두가지 종류의 방식이 있습니다. 칫솔모 자체가 회전하는 회전식이 있고 칫솔의 미세진동으로 인해 플라그를 제거하는 ..

Tistory

[Network] 네트워크란 무엇인가? 네트워크의 정의와 종류 총정리

네트워크란 무엇인가? 네트워크는 Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미합니다. 좀더 쉽게 말하자면 "두 대 이상의 컴퓨터들을 연결하고 서로 통신(이야기)할 수 있는 것" 이것이 바로 네트워크 입니다. 누구는 네트워크의 정의를 이렇게 내립니다. '어떤 연결을 통해 컴퓨터의 자원을 공유하는 것'이라고 말이죠. IEEE(Institute of Electrical and Electronics Engineers:국제 전기 전자 공학회)에서는 네트워크를 다음과 같이 정의 하였습니다. "몇 개의 독립적인 장치가 적절한 영역내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해 주는 데이타 통신 체계"라고 말입니다...

Tistory

[Network] LAN(근거리 통신망)이란 무엇인가?

LAN이란 무엇인가? LAN(근거리 통신망)은 광대역 통신망과는 달리 학교, 회사, 연구소 등 한 건물이나 일정 지역 내에서 컴퓨터나 단말기들을 고속 전송 회선으로 연결하여 프로그램 파일 또는 주변장치를 공유할 수 있도록 한 네트워크 형태입니다. LAN의 특징 단일 기관의 소유, 제한된 지역 내의 통신입니다. 광대역 전송 매체의 사용으로 고속 통신이 가능합니다. 공유 매체를 사용하므로 경로 선택 없이 매체에 연결된 모든 장치로 데이터를 전송합니다. 오류 발생률이 낮습니다. 네트워크에 포함된 자원을 공유합니다. 네트워크의 확장이나 재배치가 쉽습니다. 전송매체로 꼬임선, 동축 케이블, 광섬유 케이블들을 사용합니다. 망의 구성 형태에 따라서 성형, 버스형, 링형, 계층형으로 분류할 수 있습니다. LAN의 이용..

Tistory

[Network] VAN(부가 가치 통신망)이란 무엇인가?

VAN(부가 가치 통신망)의 개념 VAN(부가 가치 통신망, Value Added Network)은 공중 통신 사업자로부터 통신 회선을 임대하여 하나의 사설망을 구축하고 이를 통해 정보의 축적, 가공, 변환 처리등 부가 가치를 첨가한 후 불특정 다수를 대상으로 서비스를 제공하는 통신망을 뜻합니다. VAN의 출현 배경 정보통신 기술의 발달 정보에 대한 수요 증대 사무 및 공장 자동화 기술의 발달 VAN의 특징 불특정 다수의 대상으로 서비스를 제공 패킷 교환망을 이용한 교환 서비스 기업 간 전산망(EDI)등과 공통적 특성을 가진다. VAN의 계층구조 전송 기능(기본 통신 계층) : 사용자가 단순히 정보를 전송할 수 있도록 물리적 회선을 제공하는 VAN의 가장 기본적인 기능입니다. 교환 기능(네트워크 계층) ..

Tistory

[Network] ISDN(종합 정보 통신망)이란 무엇인가?

IDSN이란? ISDN(종합 정보 통신망, Integrated Service Digital Network)은 음성, 문자, 화상등의 다양한 통신 서비스를 하나의 디지털 통신망을 근간으로 종합적으로 제공할 수 있도록 통합한 것입니다. IDSN의 특징 통신 방식 및 전송로가 모두 디지털 방식입니다. 단일 통신망으로 음성, 문자, 영상 등의 다양한 서비스를 종합적으로 제공합니다. 고속 통신이 가능하며, 확장성과 재배치성이 좋습니다. 두개 이상의 단말 장치를 제어할 수 있기 때문에 동시에 복수 통신이 가능합니다. 통신망의 중복 투자를 피할 수 있어 경제적입니다. OSI 참조 모델의 계층 구조를 따릅니다. 64kbps 1회선 교환 서비스가 기본입니다. 통신망의 교환 접속 기능에는 회선 교환방식과 패킷 교환방식이 ..

Tistory

[Linux] 리눅스란 무엇인가? (센토스 VS 우분투)

리눅스란? 리눅스(Linux)는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영 체제입니다. 리눅스(Linux)는 UNIX운영체제를 기반으로 만들어진 운영체제 입니다. 리눅스(Linux)는 유닉스(UNIX)와 마찬가지로 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS)입니다. 리눅스의 원형이 되는 UNIX가 애초부터 통신 네트워크를 지향하여 설계된것처럼 리눅스 역시 서버로 작동하는데 최적화되어있습니다. 고로 서버에서 사용되는 운영체제로 많이 사용되고 있습니다. 리눅스의 특징 1. 리눅스는 유닉스와 완벽하게 호환가능합니다. 2. 리눅스는 공개 운영체제입니다. 오픈소스이므로 누구든지 자유롭게 수정이 가능합니다. 3. 리눅스는 PC용 OS보다 안정이며 보안쪽면에서..

Tistory

[Windows] 윈도우 복구 / 복원 이전시점으로 되돌리기

컴퓨터를 사용하다보면 불필요한 프로그램이 설치되거나 특정 시점 이후로 컴퓨터가 매우 느려지는 현상이 발생할 때가 있습니다. 이 경우 문제점을 찾아서 해결하는것 보다는 그냥 윈도우 자체를 문제가 있었던 시점 이전으로 되돌리는것이 더 나은데요. 이번 포스팅에서는 복구드라이브를 통하여 윈도우를 이전시점으로 복원하는 방법에 대해 알아보도록 하겠습니다. 윈도우 복구 / 복원 이전시점으로 되돌리기 1. 시작 -> 찾기에서 복원이라는 키워드를 검색하여 복원 지점 만들기를 클릭합니다. 2. 시스템 복원을 클릭합니다. 3. 복원 마법사가 나오는군요. 다음을 눌러줍니다. 4. (1번)추가 복원지점을 눌러 최대한 많은 복원지점을 표시해준 뒤 (2번)자신이 원하는 지점을 클릭하고 (3번)영향을 받는 프로그램 검색 버튼을 눌러..

Tistory

[Windows] 최근에 사용한 파일 목록 제거 & 목록 안나오게 하는방법

윈도우 탐색기를 열면 최근에 사용한 파일 목록들이 나오는데요. 내가 시간에 따라 어떤 작업을 했는지 한눈에 확인이 가능하여 매우 편리합니다. 하지만 만약 컴퓨터를 내가 아닌 다른사람이 보았을경우 뭔가 찝찝(?)한 느낌을 받을 수 있어요. 이번 포스팅에서는 최근에 사용한 파일 목록을 제거하는 방법과 목록이 아예 안나오게 하는 방법에 대해 알아보도록 하겠습니다. 최근에 사용한 파일 목록 제거 & 목록 안나오게 하는방법 1. 탐색기 왼쪽 트리에 보시면 바로가기라는 아이콘이 있습니다. 이 아이콘을 마우스 우클릭 -> 옵션을 클릭해주세요. 2. 최근에 사용한 파일 목록을 제거하시려면 1번 박스에 보이는 체크박스 두개를 선택하고 지우기 버튼을 누르면 됩니다. 또 목록이 안 쌓이게끔 하고 싶다고 하시면 1번에 있는 ..

Tistory

[Windows] 윈도우10 (Windows 10) 단축키 정리

Windows 10 자주쓰는 단축키 모음 1. Ctrl + W = 현재 창 닫기 2. Ctrl + A = 전체 선택 3. Ctrl + T = 새로운 웹 페이지 열기 4. Ctrl + Shift + Esc = 작업 표시줄 열기 1. Windows Key + X = 간소화 메뉴 창 열기 2. Windows Key + W = 메모지, 스케치북, 화면스케치 선택 창 열기 3. Windows Key + E = 탐색기 열기 4. Windows Key + R = 실행 창 열기 5. Windows Key + D = 바탕화면으로 가기 6. Windows Key + P = 듀얼모니터 설정 7. Windows Key + A = 알림창 확인 8. Windows Key + L = PC 잠금 9. Windows Key + U =..

Tistory

[Windows] 윈도우 최신상태로 수동 업데이트 하기

완벽해보이는 윈도우도 사실 그렇지 않습니다. 그래서 윈도우는 계속해서 여러가지 문제점을 보안하기 위해 패치파일을 내고있습니다. 윈도우는 최신버전으로 계속해서 유지해주는것이 좋아요. 최신상태의 윈도우가 아니면 호환이 안되는 프로그램도 있구요. 이번 포스팅에서는 윈도우 업데이트를 수동으로 진행하는 방법에 대해 알아보도록 하겠습니다. 윈도우 최신상태로 업데이트 하기 1. 윈도우 업데이트를 하기 위해서는 윈도우 설정창을 열어야 합니다. 시작 -> 설정창(톱니바퀴모양)을 클릭하시거나 단축키 Windows + I 를 입력하셔서 설정창을 실행시킵니다. 2. 윈도우 설정창에서 업데이트 및 보안 버튼을 클릭합니다. 3. 윈도우 업데이트 확인 버튼을 누르시고 최신버전이 아니라면 업데이트를 하시면 됩니다.

Tistory

[Windows] 윈도우 자동 업데이트 끄기 / 중지하기

윈도우 업데이트를 하면 시간이 굉장히 많이 걸립니다. 만약 이렇게 시간이 오래걸리는 윈도우 업데이트가 일과시간에 진행된다면 굉장히 곤란하겠죠. 몇시간은 그냥 꼼짝없이 날리게 됩니다. 하지만 윈도우 업데이트를 중간에 취소할 수도 없게 되어있더라구요. 하지만 윈도우 업데이트를 중지시키는 방법이 없는것은 아닙니다. 백그라운드에서 돌아가는 윈도우 업데이트 서비스를 강제로 종료시키면 윈도우 업데이트를 중지됩니다. [Windows] 윈도우 자동 업데이트 도중 취소하기 1. 찾기 -> 서비스를 입력하시어 서비스 창에 들어간 뒤 Windows Update를 찾습니다. 2. Windows Update 서비스를 중지시키고 확인을 누르시면 윈도우 업데이트가 중지됩니다. ※ 추가적으로 윈도우 업데이트가 실행되지 않게끔 하고 ..

Tistory

[Windows] 윈도우 업데이트 멈춤현상 해결하기

윈도우 업데이트를 하다보면 특정 퍼센트에서 더이상 진도가 안나가는 경우가 있습니다. 몇시간을 기다려도 마찬가지일때는 뭔가 잘못되었다는 생각이 드는데요. 저도 몇번을 껏다켜도 계속 업데이트가 멈추는 현상이 나서 고생을 많이했습니다. 하지만 결국에는 해결하기는 했습니다. 그 해결방법! 이번 포스팅에서 공유해보려 합니다. 윈도우 업데이트 멈춤현상 해결하기 1. CMD창을 켠뒤(관리자모드로 실행시켜야 합니다. net stop wuauserv라는 명령어를 입력하여 백그라운드에서 돌아가고 있는 Winodws Update 서비스를 중지시켜줍니다. 2. cd\Windows라고 입력하여 Windows폴더로 들어가주세요. 3. rd/s SoftwareDistribution이라고 입력한뒤 계속하겠냐는 메시지가 나오면 Y를 ..

Tistory

[Windows] 컴퓨터(윈도우) 자동종료 / 예약종료 하는법

윈도우에는 컴퓨터를 일정시간 뒤에 종료하는 방법이 있습니다. 저는 윈도우 자동종료를 아주 많이쓰는데요. 사실 회사에서 컴퓨터를 끄고 퇴근하면 눈치가보여 1시간뒤에 자동종료를 시켜놓고 퇴근하는 편입니다.... ㅎㅎㅎ 아주 간단한 방법 아래에서 소개하겠습니다. 컴퓨터(윈도우) 자동종료/예약종료 하는법 1. Windows키 + R을 클릭하셔서 실행창을 엽니다. 그런뒤 CMD라고 입력하셔서 CMD창을 띄워주세요. 2. 그런뒤 shutdown -s -t 종료할 초를 입력하면 됩니다. 사진에서처럼 3600을 입력하면 3600초(1시간)뒤에 컴퓨터가 자동종료 되겠네요. 3. 설정이 제대로 되었으면 로그오프하려고 한다는 알림창이 뜹니다. 4. 예약종료를 취소하는 방법은 CMD창에 shutdown -a를 입력하시면됩니다..

Tistory

[C++] 객체지향 프로그래밍이란 무엇인가?

객체지향 기법이란? 객체지향 기법은 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 기계적인 부품들을 조립하여 제품을 만들듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법입니다. 1. 객체 지향 기법은 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택되어 사용되고 있습니다. 2. 소프트웨어의 재사용 및 확장을 용이하게 함으로써 고품질의 소프트웨어를 빠르게 개발할 수 있으며 유지보수가 쉽습니다. 3. 복잡한 구조를 단계적, 계층적으로 표현하고, 멀티미디어 데이터 및 병렬 처리를 지원합니다. 4. 현실세계를 모형화 하여 사용자와 개발자가 쉽게 이해할 수 있습니다. 5. 객체지향 기법의 구성요소에는 객체(Object), 클래스(..

Tistory

[C++] 객체지향 언어의 5가지 특징

객체지향 기법의 특징은 크게 5가지가 있습니다. 캡슐화, 정보은닉, 추상화, 상속성, 다형성이 바로 그것이며 이중 구조적 기법과 차별되는 개념은 캡슐화, 상속성, 다형성 입니다. 객체지향 언어의 5가지 특징 캡슐화(Encapsulation) 캡슐화는 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶은 것을 의미합니다. 1. 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급 효과가 적습니다. 2. 캡슐화된 객체들은 재사용이 용이합니다. 3. 객체들 간의 메시지를 주고받을 떄 각 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고, 객체간의 결합도가 낮아집니다. 정보은닉(Information Hiding) 캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자..

Tistory

[Network] 클라이언트 서버 시스템이란 무엇인가?

클라이언트 / 서버 시스템이란? 서버 클라이언트 시스템이란 위 사진과 같이 여러개의 클라이언트가 네트워크 통신을 활용해 서버에 접속을 하고 그 서버와 붙어있는 데이터베이스를 활용할 수 있는 시스템을 말합니다. 서버는 데이터베이스를 저장하고 DBMS를 운영하면서 여러 클라이언트에서 온 질의를 최적화, 권한 검사를 수행, 동시성제어, 회복기능, 무결성, 접근을 관리하고 클라이언트는 사용자 인터페이스를 관리하고 응용들을 수행합니다. 클라이언트는 서버와 동일한 디바이스 일 수도 있지만 대부분 서비스를 사용하고자 하는 사용자가 지니고 있는 인터넷이 가능한 모든 디바이스를 클라이언트라고 지칭합니다. 이렇게 하면 하드웨어 비용을 획기적으로 줄일 수 있습니다. 그리고 전세계 어디에서든지 접속이 가능한 인터넷이라는 매체..

Tistory

[Web] base64 인코딩 / 디코딩 해주는 프로그램 공유

이미지를 base64로 인코딩 / 디코딩 시켜주는 프로그램입니다. 아래 압축파일을 다운받으시면 사용하실 수 있습니다. 혹여나 윈도우에서 열람을 거부한다는 메시지가 떠도 그냥 무시하시고 실행시켜주시면 됩니다. 악성코드 없습니다. 프로그램 설명서 1. 데이터로 변환 : 이미지를 base64로 인코딩 시켜줍니다. 2. 이미지로 변환 : base64로 인코딩 된 아스키코드를 이미지화 시켜 보여줍니다. 3. PNG로 저장 : base64로 인코딩 된 아스키코드를 PNG형식으로 저장합니다.

Tistory

[OS] 링커와 로더란 무엇인가?

절대로더 링커(연결 편집기) 링커는 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리 또 다른 실행 프로그램등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이며 연결 편집기라고도 합니다. 링커는 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹이라고 합니다. 로더란 무엇인가? 로더는 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로 부터 주 기억장치에 적재하는 시스템 소프트웨어 입니다. 로더의 기능 1. 할당 : 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능 2. 연결 : 부 프로그램 호출 시 그 부 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능 3. 재배치 : 디스크등의 보조..

Tistory

[OS] 프로세스란 무엇인가?

프로세스란? 프로세스는 일반적으로 CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램 즉 실행중인 프로그램을 의미하며, 작업(Job) 태스크(Task)라고도 합니다. 프로세스는 다음과 같이 여러 형태로 정의할 수 있습니다. 1. PCB를 가진 프로그램 2. 실기억장치에 저장된 프로그램 3. 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위 4. 프로시저가 활동중인 것 5. 비동기적 행위를 일으키는 주체 6. 지정된 결과를 얻기 위한 일련의 계통적 동작 7. 목적 또는 결과에 따라 발생되는 사건들의 과정 8. 운영체제가 관리하는 실행 단위 ※ 프로시저란? 한 프로그램은 여러개의 작은 프로그램으로 분할될 수 있는데 이떄 분할된 작은 프로그램을 의미하며, 부 프로그램이라고도 합니다. 프로세스 상태 전..

Tistory

[OS] PCB란 무엇인가?

PCB란? PCB(프로세스 제어블록)는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 Task Control Block 또는 Job Control Block이라고도 합니다. 각 프로세스가 생성될 때마다 고유의 PCB가 생성되며 프로세스가 완료되면 PCB는 제거됩니다. PCB에 저장되어 있는 정보 저장정보 설명 프로세스의 현재 상태 준비, 대기, 실행 등의 프로세스 상태 포인터 부모 프로세스에 대한 포인터 : 부모 프로세스의 주소 기억 자식 프로세스에 대한 포인터 : 자식 프로세스의 주소 기억 프로세스가 위치한 메모리에 대한 포인터 : 현재 프로세스가 위치한 주소 기억 할당된 자원에 대한 포인터 : 프로세스에 할당된 각 자원에 대한 주소 기억 프로세스 고유 식별자 프로세스를 구분할 수 있는 ..

Tistory

[OS] 운영체제 스케줄링이란 무엇인가?

스케줄링이란? 1. 스케줄링은 프로세스가 생성되어 실행될때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 의미합니다. 2. 프로세스가 생성되어 완료될때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 됩니다. 3. 스케줄링의 종류에는 장기 스케줄링, 중기 스케줄링, 단기 스케줄링이 있습니다. 장기 스케줄링 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미합니다. 작업 스케줄링, 상위 스케줄링이라고도 하며, 작업 스케줄러에 의해 수행됩니다. 중기 스케줄링 어떤 프로세스들이 CPU를 할당 받을 것인지 결정하는 작업을 의미합니다. CPU를 할당받으려는 프로세스가 많을 경우 프로세스를 일시 보류시킨 후 활성화해서 일시적으로 부하를 조절합니다..

Tistory

[OS] 여러가지 프로세서 운영기법들

병행 프로세스 병행 프로세스는 두개이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미합니다. 1. 여러 프로세스들이독립적으로 실행되는 것을 독립적 병행 프로세스, 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스라고 합니다. 2. 병행 프로세스는 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용됩니다. 임계 구역 임계구역은 다중 프로그래밍 운영체제에서 여러개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원을 의미합니다. 1. 임계구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있습니다. 2. 임계 구역은 특정..

Tistory

[OS] 교착상태란 무엇인가?

교착상태란? 교착상태(Dead Lock)은 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다. 아래 그림과 같이 자동차(프로세스)들이 현재 위치한 길(자원)을 점유함과 동시에 다른 차가 사용하는 길을 사용하려고 대기하고 있지만 다른 길을 사용할 수 없으며 현재 길에서도 벗어나지 못하는 상태입니다. 교착상태 발생의 필요 충분 조건 교착상태가 발생하기 위해서는 다음의 네가지 조건이 충족되어야 하는데, 이 네가지 조건중 하나라도 충족되지 않으면 교착상태가 발생하지 않습니다. 상호배제(Mutual Exclusion) 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 합니다. 점유와 대..

Tistory

[OS] 운영체제에서 기억장치를 관리하는 방법

기억장치 계층 구조의 특징 기억장치는 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치등이 있습니다. 1. 계층 구조에서 상위의 기억장치일수록 접근 소도와 접근 시간이 빠르지만 기억 용량이 적고 비쌉니다. 2. 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며, 주소를 이용하여 액세스 할 수 있습니다. 3. 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스할 수 없습니다. 4. 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스될 수 있습니다. 운영체제의 기억장치의 관리 전략 기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사..

Tistory

[OS] 운영체제의 여러가지 보안기법

운영체제 보안 보안은 컴퓨터 시스템 내에 있는 프로그램과 데이터에 대하여 통제된 접근 방식을 어떻게 제공할 것인가를 다루는 것입니다. 물리적 환경적 취약점을 이용한 침입, 방해, 절도 등의 행위로부터 컴퓨터 시스템내의 자원을 보호하고 대응하기 위한 일련의 정책과 행위를 말하는데요. 컴퓨터 시스템에 의해 정의된 자원에 대하여 프로그램, 프로세스 또는 사용자의 허용된 권한 외에는 접근을 제한하여 자원의 손상 및 유출 등을 방지하는 기법입니다. 보안 유지 기법 외부 보안(External Security) 외부 보안에는 컴퓨터 시스템의 물리적 보안을 위한 시설 보안과 운용자의 정책을 통한 시설 보안이 있습니다. 시설 보안 : 천재지변이나 외부 침입자로부터의 보안을 의미하는 것으로, 연기나 열을 감지하고 사람의 ..

Tistory

[OS] 운영체제 문서 보안 시스템 (암호화 복호화)

암호화 기법 암호화(Encryption)는 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것이고, 복호화(Decryption)는 암호화된 데이터를 원래의 평문으로 복구하는 것을 의미합니다. 암호화 기법에는 비밀키 암호화 기법과 공용키 암호화 기법이 있습니다. 비밀키 암호화 기법 1. 동일한 키로 데이터를 암호화하고, 해독(복호화)하는 대칭 암호화 기법입니다. 2. 해독키를 아는 사람은 누구든지 암호문을 해독할 수 있으므로 해독키의 비밀성을 유지하는 것이 중요합니다. 3. 암호화/복호화 속도가 빠르며 알고리즘이 단순하고 파일의 크기가 작습니다. 4. 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아지고 키의 분배가 어렵습니다. 5. 비밀키 ..

Tistory

[OS] UNIX란 무엇인가? (UNIX 총정리)

UNIX의 특징 UNIX는 주로 서버용 컴퓨터에서 사용되는 운영체제로 아래와 같은 특징이 있습니다. 1. 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템입니다. 2. 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높습니다. 3. 크기가 작고 이해하기가 쉽습니다. 4. 다중 사용자, 다중 작업을 지원합니다. 5. 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합합니다. 6. 트리구조의 파일 시스템을 가지고 있습니다. 7. 전문적인 프로그램 개발에 용이합니다. 8. 다양한 유틸리티 프로그램들이 존재합니다. UNIX 시스템의 구성 커널(Kernel) Unix의 가장 핵심적인 부분입니다. 컴퓨터가 부팅될..

Tistory

[OS] MS-DOS란 무엇인가?(MS-DOS총정리)

MS-DOS의 특징 MS-DOS는 마이크로소프트사에서 개발한 것으로, Windows 이전에 사용되던 운영체제이며 아래와 같은 특징이 있습니다. 1. CUI(문자중심의 사용자 인터페이스) : 작업을 위한 실행 명령을 문자로 직접 입력하여 실행시킵니다. 2. Single-User : 하나의 컴퓨터를 한 사람만이 사용합니다. 3. Single-Tasking : 한번에 하나의 프로그램만을 수행합니다. 4. 파일시스템의 디렉터리 구조는 트리 구조입니다. MS-DOS의 파일시스템 시스템 파일(System File) 시스템 파일은 MS-DOS의 핵심 파일로 주변장치의 입출력과 시스템 전체를 통제합니다. 부팅시 반드시 필요하며, 부팅 후 메모리에 항상 적재되어 있습니다. 시스템파일에는 MSDOS.SYS와 IO.SYS가..

Tistory

[Windows] 윈도우이란 무엇인가? 윈도우의 여러가지 특징들

Windows란? 윈도우는 마이크로소프트사가 개발한 운영체제로 애플이 개인용 컴퓨터에 처음으로 도입한 그래픽 사용자 인터페이스(GUI) 운영 체제인 맥 OS에 대항하여, 당시 널리 쓰이던 MS-DOS에서 멀티태스킹과 GUI 환경을 제공하기 위한 응용 프로그램으로 처음 출시되었습니다. 현재 전 세계 90%의 개인용 컴퓨터에서 쓰고 있으며, 서버용 운영 체제로도 점차 영역을 넓혀 나가고 있습니다. 윈도우 운영 체제의 경우 큰 시장 점유율을 차지하고 있는 까닭에 일반 사용자들에게 매우 익숙할뿐 아니라 호환되는 유명한 응용 프로그램이 많다는 장점을 지니고 있지만, 그만큼 보안 문제에서는 취약한 부분이 많은 운영 체제로 인식되기도 합니다. 하지만 사실 보안문제에선 취약한 부분이 다른 운영체제와 차이날 정도로 독보..

Tistory

[Oracle] Union해서 나온 결과 ROW 값 합치기

가끔 저장된 데이터는 다르지만 테이블 구조는 같은 경우가 있습니다. 이 구조가 같은 테이블을 같이 조회할 경우에는 컬럼이같기에 UNION을 사용하면 굉장히 효율적입니다. UNION을 사용하였기에 두 테이블에 있는 값은 합쳐지지 않고 따로따로 조회가 되어 합쳐지는데요. 하지만 가끔은 이렇게 조회된 두테이블의 결과 값을 서로 합쳐줘야할 때가 있습니다. 대표적으로 두 테이블의 통계를 낼때가 있겠군요. 예제 SELECT S.MODULE, SUM(S.ERR)AS ERROR_COUNT, --에러갯수 SUM(S.MOD) AS MOD_COUNT --수정갯수 FROM ( SELECT A.MODULE COUNT(A.ERR) AS ERR, COUNT(A.MOD) AS MOD, FROM ERROR_TABLE_1 A --1번테..

Tistory

[Oracle] 소수점 처리 올림,반올림,버림 함수 (CEIL,ROUND,TRUNC) 사용법 & 예제

오라클 소수점 처리를 할때 유용하게 사용할 수 있는 함수가 3가지가 있습니다. 바로 CEIL, ROUND, TRUNC 인데요. 각각 소수점을 올림, 반올림, 버림 해줄 수 있는 함수입니다. 소수점 올림 (CEIL) --사용법 SELECT CEIL([컬럼])AS [명칭] FROM [테이블명] --자릿수 지정은 없으며 무조건 소수점첫번째에서 올림 --예제 SELECT CEIL(10.423)AS PAY FROM DUAL --결과 : 11 SELECT CEIL(PAY)AS PAY FROM EMP_TABLE SELECT CASE SUM(ERR) WHEN 0 THEN 0 ELSE --0으로 나눌경우 에러가 나기에 예외처리 CEIL(COUNT(MOD)/COUNT(ERR)*100) END AS TEST_PERCENT ..

Tistory

[Oracle] Null값을 치환해주는 (NVL,NVL2) 함수 사용법 & 예제

오라클을 사용하다보면 NULL값을 다른 함수로 치환해주어야하는 경우가 많습니다. 이럴경우 오라클에서 제공하는 NVL함수를 써서 쉽게 처리할 수 있는데요. NVL함수는 매우편리하지만 오라클에서만 제공하는 함수이다보니 다른 데이터베이스와의 호환을 염두해둔다면 피해야할 함수이기도 합니다. (이 쿼리로 짜놓고 MY_SQL이나 MS_SQL에서 사용한다면....?? 끔찍합니다. ㅠㅠ) 1. NVL함수 사용법 NVL(컬럼,NULL일경우 반환값) NVL(컬럼,0) -- 컬럼의 값이 NULL일경우 0으로 치환 NVL(컬럼,'') -- 컬럼의 값이 NULL일경우 ''으로 치환 NVL(컬럼,SYSDATE) --컬럼의 값이 NULL일경우 현재날짜로 치환 예제 (COMPANY_NO)가 NULL이면 ''으로 치환 SELECT N..

Tistory

[Oracle] 편리한 조건함수 DECODE 함수 사용법 & 예제

오라클에서 조건을 주는 방법은 여러가지가 있습니다. 대표적으로는 CASE문 IF문이 있는데 이런 조건문을 사용하게 되면 쿼리문이 쓸데없이 길어질요소가 존재합니다. 하지만 조건이 동등문(=)일경우에 간단하게 사용할 수 있는 DECODE함수라는것이 있습니다. 이번 포스팅에서는 오라클에서 제공하는 DECODE함수를 통해 간결하게 조건문을 주는 방법에 대해 알아보도록 하겠습니다. 경우에 따라서는 DECODE함수를 중첩해서 쓰거나 서브쿼리와 같이 사용하셔도 됩니다. DECODE함수는 어제 포스팅했었던 NVL함수와 마찬가지로 오라클에서만 존재하는 함수이므로 MY_SQL이나 MS_SQL과의 호환을 염두하신다면 사용을 피하셔야합니다. 사용법 DECODE(컬럼,조건,TRUE 결과값,FALSE 결과값) 예제 --TYPE ..

Tistory

[Oracle] 오라클 데이터 타입 변환(TO_CHAR, TO_NUMBER, TO_DATE) 사용법 & 예제

MYSQL이나 MSSQL에서 대표적인 데이터 타입 변환함수는 CONVERT인데요. 오라클에서는 동작하지 않습니다. 오라클에서 데이터 타입 변경을 하고 싶을때는 CONVERT가 아닌 다른 함수를 사용하여야 합니다. 함수명은 TO_[데이터타입]인데요. 대표적으로 TO_CHAR , TO_NUMBER, TO_DATE 등이 있습니다. TO CHAR (CHAR형으로 변경) --사용법-- SELECT TO_CHAR([컬럼명]) FROM [테이블명] --예제-- SELECT TO_CHAR(10000) FROM DUAL --INT TO CHAR SELECT TO_CHAR(SYSDATE) FROM DUAL --DATE TO CHAR SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL --D..

Tistory

[OS] 시스템 소프트웨어의 개념과 구성

시스템 소프트웨어 1. 시스템 소프트웨어는 시스템 전체를 작동시키는 프로그램으로, 프로그램을 주기억장치에 적재시키거나 인터럽트 관리, 장치관리, 언어 번역 등의 기능을 담당합니다. 2. 시스템 소프트웨어의 가장 대표적인 프로그램으로 운영체제가 있으며, 그 외에는 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병 프로그램, 로더 등이 있습니다. 3. 시스템 소프트웨어는 기능별로 제어프로그램과 처리 프로그램으로 분류 할 수 있습니다. 제어프로그램 1. 감시프로그램 2. 작업 제어 프로그램 3. 자료 관리 프로그램 제어 프로그램은 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 것으로 감시 프로그램과 작업 제어 프로그램으로 구분할 수 있..

Tistory

[OS] 운영체제란 무엇인가?

운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 운영체제의 종류 운영체제의 종류에는 WIndows 98, Windows10, UNIX, LINUX, MS-DOS등이 있습니다. 단일 작업 처리 시스템에는 DOS, 다중 작업 처리 시스템에는 WINODWS, UNIX, LINUX등이 사용됩니다. 주로 WINDOWS는 개인용 UNIX, LINUX는 서버용 운영체제로 사용됩니다. 운영체제의..

Tistory

[OS] 다양한 운영체제의 운용기법 종류

운영체제에는 여러가지 운용기법들이 존재하는데 크게 7가지가 존재합니다. 오늘날 사용하는 OS의 운용기법은 주로 다중 모드 처리 방식과 분산 처리 시스템 방식을 사용합니다. 1. 일괄처리 시스템 일괄 처리 시스템은 초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식입니다. 1. 일괄처리를 위해 적절한 작업 제어 언어(Job Control Language)를 제공해야 합니다. 2. 컴퓨터 시스템을 효율적으로 사용할 수 있습니다. 3. 반환시간(Turn Around Time)이 늦지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간이 줄어듭니다. 4. 급여 계산, 지불 계산, 연말 결산등의 업무에 사용됩니다. 2. 다중 프로그래밍 시스템 다중 프..

Tistory

[Language] 프로그래밍 언어란 무엇인가?

프로그래밍 언어란? 프로그래밍 언어는 컴퓨터를 이용하여 특정 문제를 해결하기 위한 프로그램을 작성하기 위해 사용되는 언어입니다. 프로그래밍 언어는 일반적으로 저급언어(기계어, 어셈블리어)와 고급 언어(컴파일러 언어) 로 분류할 수 있습니다. 저급 언어 저급언어(Low Level Language)는 기계어와 어셈블리어로 구분됩니다. 기계어 컴퓨터가 직접 이해할 수 있는 언어입니다. 0과 1의 2진수 형태로 표현되며 수행시간이 빠릅니다. CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기가 어렵습니다. 기종마다 기계어가 다르므로 언어의 호환성이 없습니다. 어셈블리어 기계어와 1:1로 대응되는 기호로 이루어진 언어로, 니모닉(Mnemonic) 언어 라고도 합니다. 하드웨어 제어에 주로..

Tistory

[Language] 컴파일러와 인터프리터란 무엇인가?

컴파일러와 인터프리터는 고급언어로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 번역하는 번역 프로그램이며, 프로그램 번역 방식에 따라 구분됩니다. ※ 원시프로그램 고급언어나 어셈블리어로 작성된 프로그램 컴파일러 1. 컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성합니다. 2. 번역 실행 과정을 거쳐야 하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠릅니다. 3. 컴파일러를 사용하는 언어에는 C언어 Java 등이있습니다. 인터프리터 1. 인터프리터는 고급 언어로 작성된 프로그램을 한 줄 단위로..

Tistory

[Assembly] 어셈블리어란 무엇인가?

어셈블리어란? 어셈블리어란 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1로 대응시켜 코드화한 기호 언어입니다. 1. 어셈블리어로 작성한 원시 프로그램은 어셈블러를 통해 목적 프로그램(기계어)로 어셈블 하는 과정을 거쳐야 합니다. 2. 사용자가 프로그램을 쉽게 읽고 이해할 수 있습니다. 3. 프로그램에 기호화된 명령 및 주소를 사용합니다. 4. 어셈블리어의 기본 동작은 동일하지만 작성 CPU마다 사용되는 어셈블리어가 다를 수 있습니다. 5. 어셈블리어에서 사용되는 명령은 의사 명령과 실행 명령으로 구분할 수 있습니다. 컴파일 vs 어셈블 고급언어로 작성한 원시 프로그램을 컴파일러가 기계어로 번역하는 작업을 컴파일(Complie)한다고 하고 어셈블리어로 작성..

Tistory

[기타] 매크로 프로그래밍에 대해서

매크로 프로그래밍의 개념 및 특징 매크로(Macro)는 프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복 될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 기법입니다. 1. 일종의 부 프로그램(Sub-Program)으로 개방 서브루틴(Poened Sub-routine)이라고도 합니다. 2. 매크로는 문자열 바꾸기와 같이 매크로 이름이 호출되면 호출된 횟수만큼 정의된 매크로 코드가 해당 위치에 삽입되어 실행됩니다. 3. 매크로 정의 내에 또 다른 매크로를 정의할 수 있습니다. 4. 사용자의 반복적인 코드 입력을 줄여줍니다. 5. 매크로 정의형태는 주로 어셈블리어 형태입니다. 매크로 용어 매크로 정의 : 프로그래머가 일정한 형식..

Tistory

[Java] 입력 스트림(Input Stream)과 출력 스트림(Output Stream)

데이터 입출력 프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 빈번하게 일어납니다. 데이터는 사용자로부터 키보드, 마우스 등을 통해 입력될 수도 있고, 파일 또는 네트워크를 통해 입력될 수도 있습니다. 또 반대로 데이터를 사용자에게 모니터나 파일등으로 출력할수도 있습니다. 자바 입출력과 스트림(Stream) 자바에서 데이터는 스트림(Stream)을 통해 입출력 됩니다. 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말하는데 물이 높은 곳에서 낮은곳으로 흐르듯이 데이터는 출발지에서 나와 도착지로 흘러간다는 개념입니다. 프로그램이 출발지냐 또는 도착지냐에 따라서 스트림의 종류가 결정되는데, 프로그램이 데이터를 입력받을 때에는 입력(InputStream)이라고 부릅니다. 입력스트림의 출발지..

Tistory

[Java] 자바 파일 입출력 (txt파일로 저장 및 읽어오기)

File 클래스 Java.io패키지에서 제공하는 File클래스는 파일 크기, 파일 속성, 파일 이름 등의 정보를 얻어내는 기능과 파일 생성 및 삭제 기능을 제공하고 있습니다. 그리고 디렉토리를 생성하고 디렉토리에 존재하는 파일 리스트를 얻어내는 기능도 있습니다. 이번 포스팅에서는 이 File클래스와 출력스트림을 활용하여 텍스트(txt)파일을 생성해보고 이것을 입력스트림을 활용하여 읽어오는 예제를 한번 만들어보도록 하겠습니다. 1. txt 파일로 데이터 저장하기 package InputOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class OutputST..

Tistory

[Java] 자바로 폴더(디렉토리) 생성하기

이번 포스팅에서는 해당 위치에 원하는 폴더가 없을 경우 새로이 폴더를 하나 만들어주는 방법에 대해 알아보겠습니다. File클래스안의 mkdir이라는 메서드를 활용하여 간단히 구현할 수 있습니다. 원하는 위치에 디렉토리가 없을경우 디렉토리 자동생성 import java.io.File; public class MkDir { public static void main(String[] args) { String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 File Folder = new File(path); // 해당 디렉토리가 없을경우 디렉토리를 생성합니다. if (!Folder.exists()) { try{ Folder.mkdir(); //폴더 생성합니다. System.out.p..

Tistory

[Java] 자바로 폴더(디렉토리) 삭제하기(하위파일, 폴더 포함)

자바 소스로 폴더나 파일을 삭제할수도 있습니다. File.delete()함수를 활용하면 쉽게 구현이 가능한데요. 파일은 쉽게 삭제가 가능한데 문제는 폴더입니다. 폴더는 하위에 파일이 하나라도 남아있으면 File.delete()함수가 작동하지 않습니다. 그러므로 폴더를 삭제하기전에 폴더안에있는 파일을 삭제해주는 작업을 선행하셔야합니다. 폴더안의 파일들을 제거한 뒤 대상 폴더제거 import java.io.File; public class Delete { public static void main(String[] args) { String path = "D:\\Eclipse\\Java\\새 폴더"; File folder = new File(path); try { while(folder.exists()) { ..

Tistory

[Java] 자바로 폴더(디렉토리),파일 복사하기

자바 File클래스에는 폴더에있는 모든 파일정보를 가지고 오는 메서드인 listFiles()라는 메서드가 존재합니다. 이 listFiles() 메서드와 File클래스의 파일생성 메서드인 mkdir()를 활용하면 쉽게 파일을 복사하실 수 있습니다. 자바로 파일 복사하기 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Copy{ public static void main(String[] args) { File folder1 = new File("D:\\Eclipse\\Java\\복사할폴더\\복사될폴더"); File folder2 =..

Tistory

[Java] 자바로 폴더(디렉토리),파일 이동시키기 / 잘라내기

최근 두가지 글을 포스팅했습니다. [Java] 자바로 폴더(디렉토리),파일 복사하기 [Java] 자바로 폴더(디렉토리) 삭제하기(하위파일, 폴더 포함) 위의 두가지 글이 바로 최근 포스팅했던 글들인데요. 자바로 폴더 및 파일을 이동시키는 방법은 위에 있는 두개의 포스팅을 합치면 구현하실 수 있습니다. 자바로 폴더(디렉토리),파일 이동시키기 1. 폴더 및 파일을 복사한다. 2. 복사했던 폴더 및 파일을 삭제시킨다. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Move { public static void main(String[..

Tistory

[블로그] FastBoot스킨의 한계를 느끼고 티스토리 스킨을 교체합니다.

티스토리 스킨을 교체했습니다. 기존에 제가 쓰고있던 스킨이름은 FastBoot이라는 스킨이였는데요. 깔끔한 디자인에 빠른 속도 그리고 티스토리 블로그에 영향력이 꽤나 높으신 친절한 효자손님의 FastBoot커스터마이징 강의가 대대적으로 포스팅되면서 자연스레 FastBoot라는 스킨이 홍보가되어 티스토리 블로거들사이에서 유행을 탔었죠. 아직도 많은 티스토리 블로그가 FastBoot스킨으로 블로그가 운영되고 있더군요. 저도 그 유행에 탑승하여 약 1년간 이 스킨을 잘 사용해오고 있었지만 최근들어 여러가지 문제점이 생기며 스킨을 교체하고자 합니다. 소프트웨어에서 유지보수는 필수다. 소프트웨어는 지속적으로 업데이트가 됩니다. MS사의 익스플로러도, 구글의 크롬도 계속해서 버전이 올라가고 업데이트가 되죠. 웹 환..

Tistory

[블로그] 티스토리 스킨을 결정했습니다. 깔끔한 유료스킨 추천 JB SKIN

티스토리 스킨 교체 [블로그] FastBoot스킨의 한계를 느끼고 티스토리 스킨을 교체합니다. 얼마전 제가 사용하고 있던 FastBoot스킨의 HTML 구조가 깨져 네이버의 검색엔진에서 제 블로그를 저품질로 인식하는 현상이 발생하여 스킨의 교체 필요성을 느끼게 되었습니다. 어떤 스킨을 적용할것인가에 대해 여러가지 방안에 대해 고심을 했습니다. 1. 스킨을 직접 만들어본다. 2. 검증된 유료/무료 스킨을 적용한다. 스킨을 직접 만들어본다. 개인적으로 해보고 싶은 일입니다. 바로 나만의 티스토리 스킨을 직접 만들어 보는 것입니다. FastBoot 스킨을 보며 나도 이런 스킨을 하나 만들어보고 싶다는 생각을 수십번 해보았습니다. 스킨을 수정작업하면서 이렇게 수정을 열심히 할바에야 차라리 하나 만들어보는게 낫겠..

Tistory

[블로그] 2018년 블로그 결산 및 애드센스 수입공개

안녕하세요 코딩팩토리입니다. 지난 2018년 한 해 동안 제 블로그를 방문해주신 모든 분께 감사드립니다. 나태해지지 않으려 꾸준히 노력한결과 한 해간 총 188개의 글을 올렸습니다. 거의 이틀당 하루꼴입니다. 더 좋은 정보를 제공하기 위해 노력했지만 미흡한 점이 많았던것 같습니다. 2019년도에도 좋은 정보를 드리기위해 노력하겠습니다. 회사의 일이 바빠지기 시작하여 작년만큼 글을 쓰기에는 어려울거같지만요. 이번 포스팅에서는 짧았던 한 해를 마무리하는 차원에서 2018년 블로그 기록을 되돌아보는 시간을 가져보도록 하겠습니다. 2018년 블로그 결산 및 애드센스 수입공개 방문자 수가 급격히 늘었습니다. 올해초까지만해도 한달 방문자 수가 3만명정도 였는데 12월에는 월간 방문자수가 무려 12만명으로 400%센..

Tistory

[Oracle] 오라클 조회 프로시저 만들기 예제

오라클 조회 프로시저 예제입니다. 필요하신분은 복사하셔서 사용하시면 좋을 것 같습니다. CREATE OR REPLACE PROCEDURE TEST_PROC /* IN Parameter */ ( P_PLANT_CODE IN VARCHAR2,--공장코드 P_DT_OUT IN VARCHAR2, --출고일 P_ITEM_CODE IN VARCHAR2, --품목명 P_COMPANY_CODE IN VARCHAR2--회사코드 ) IS BEGIN SELECT A.PLANT_CODE, B.PLANT_NAME, A.DT_OUT, A.ITEM,_CODE, B.ITEM_NAME, A.RMK FROM TEST_TABLE A LEFT OUTER JOIN TEST_TABLE2 B ON A.COMPANY_CODE = B.COMPANY..

Tistory

[Oracle] 오라클 SELECT한 데이터를 활용하여 UPDATE하기

오라클 SELECT한 데이터를 바로 UPDATE하는 법입니다. 서브쿼리를 활용하면 간단하게 해결할 수 있습니다. 문법 UPDATE [UPDATE 테이블].[별칭] SET [UPDATE 테이블 별칭].[컬럼] = ( SELECT [조회 테이블 별칭].[컬럼] FROM [조회테이블] B ) 예제 UPDATE DEPT A SET A.PC_CD = ( SELECT B.PC_CD FROM BIZAREA B WHERE A.COMPANY_CD = B.COMPANY_CD AND A.BIZAREA_CD = B.BIZAREA_CD )

Tistory

[Oracle] 오라클 insert 자동증가 컬럼의 최대값 +1하기 (MAX+1)

NVL함수와 MAX함수를 활용하여 오라클 데이터 insert시 컬럼의 최대값+1을 저장하는 방법입니다. INSERT INTO DEPT_TABLE ( DEPT_SQ, COMPANY, DEPT_NM ) VALUES ( (SELECT NVL(MAX(DEPT_SQ),0)+1 FROM DEPT_TABLE),--데이터가없으면 0 데이터가 있으면 최대값 +1 '테스트회사', '테스트회사명' )

Tistory

[Oracle] 오라클 데이터가 없을경우에만 Insert하기

테이블에 PK로 설정되어있는 컬럼에 데이터가 중복으로 들어가면 무결성 제약조건에 걸리게됩니다. 이것을 예외처리 해주지 않는다면 프로그램에 치명적일 수 있는데요. 이 경우 데이터가 없을경우에만 Insert를 하는 형식으로 변환하여 프로그램의 안정성을 더해줄 수 있습니다. 오라클에 데이터가 없는 경우에만 Insert를 하는방법은 WHERE조건문에 NOT EXISTS(데이터 SELECT) 를 하는 방법으로 구현할 수 있습니다. INSERT INTO DEPT_TABLE ( SQ, COMPANY, DEPT, ) SELECT 1, '테스트회사', '테스트부서' FROM DUAL WHERE NOT EXISTS ( SELECT SQ FROM DEPT_TABLE WHERE SQ = 1, COMPANY = '테스트회사',..

Tistory

[Java] 자바 네트워크에 대한 이해

네트워크란? 1. 네트워크란 다른 장치로 데이터를 이동시킬 수 있는 컴퓨터들과 주변 장치들의 집합입니다. 2. 네트워크의 연결된 모든 장치들을 노드라고 합니다. 3. 다른 노드에게 하나 이상의 서비스를 해주는 노드를 호스트라 부릅니다. 4. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 이동시킬 때 복잡한 계층을 통해 전송되는데, 이런 복잡한 레이어의 대표적인 모델이 OSI 계층 모델입니다. 5. OSI 계층 모델은 모두 7계층으로 이루어져 있습니다. 6. 데이터 통신을 이해하는데 OSI 계층 모델은 상당한 역할을 하지만, 인터넷 기반의 표준 모델로 사용하는 TCP/IP 계층 모델을 주로 사용하고 있습니다. 7. 자바에서 이야기하는 네트워크 프로그래밍은 TCP/IP모델을 사용하고 있습니다. IP주소 1. 모든..

Tistory

[Java] 자바 네트워크 InetAddress 클래스

InterAddress 클래스란? InetAddress 클래스는 IP 주소를 표현한 클래스입니다. 자바에서는 모든 IP 주소를 InetAddress 클래스를 사용합니다. InetAddress 클래스의 생성자 InetAddress 클래스의 생성자는 하나만 존재하지만, 특이하게 기본 생성자의 접근 제한자 default이기 때문에 new 연산자 객체를 생성할 수 없습니다. 따라서 InetAddress 클래스는 객체를 생성해 줄 수 있는 5개의 static 메서드를 제공하고 있습니다. InetAddress 객체를 생성하는 메서드 InterAddress 주요 메서드 InetAddress 클래스는 IP 주소를 객체화 했기 때문에 다양한 메서드를 제공하지 않습니다. 다만 호스트 이름과 호스트에 대응하는 IP 주소를 ..

Tistory

[Java] 자바 네트워크 URL 클래스와 URLConnection 클래스

URL클래스 1. URL 클래스는 URL을 추상화 하여 만든 클래스입니다. 2. URL 클래스는 final 클래스로 되어 있기 때문에 상속하여 사용할 수 없습니다. 3. 모든 생성자는 MalformedURLException 예외를 발생하기 때문에 반드시 예외처리를 해야 합니다. URL클래스의 주요생성자 URL클래스의 주요 메서드 URLConnection 클래스 URLConnection 클래스는 원격 자원에 접근하는 데 필요한 정보를 가지고 있습니다. 필요한 정보란 원격 서버의 헤더 정보, 해당 자원의 길이와 타입 정보, 언어 등을 얻어 올 수 있습니다. URL 클래스는 원격 서버 자원의 결과만을 가져 오지만, URLConnection 클래스는 원격 서 버 자원의 결과와 원격 서버의 헤더 정보를 가져 올 ..

Tistory

[Java] 자바 네트워크 TCP 통신 소켓프로그래밍

TCP 통신방식이란? 1. TCP란 소켓 프로그래밍 중의 하나로 스트림 통신 프로토콜이라고 부르며, 양쪽의 소켓이 연결된상태여야만 가능 하기 때문에 연결지향 프로토콜이라고도 합니다. 2. TCP 프로토콜은 신뢰성 있는 프로토콜이기 때문에, 송신한 쪽의 데이터가 수신 측에 차례대로, 중간에 유실되는 일 없이 도착 하는 것을 의미합니다. 그러려면 수신 측과 송신 측이 미리 연결을 맺고 연결된 순서대로 데이터를 교환해야 합니다. 3. 연결지향 방식은, 한번 연결되면 연결이 끊어질 때까지는 송신한 데이터가 차례대로 목적지의 소켓에 전달되는 신뢰성 있는 통신이 가능합니다. 4. 이렇게 신뢰성 있는 TCP 연결을 하기 위해서는 TCP 프로그래밍에서 사용하는 라이브러리의 사용 방법과 동작 순서를 정확하게 숙지, 이해..

Tistory

[Java] 자바 네트워크 UDP 통신 소켓프로그래밍

UDP(User Datagram Protocol 1. UDP는 비 연결 지향이고, IP 위에 매우 얇은 레이어로 구성되어 있습니다. 2. UDP를 사용하는 애플리케이션은 TCP 프로그램에 비해 제어를 할 수 있는 부분이 적습니다. 3. UDP는 데이터를 전송할 때에 데이터가 잘 도착했는지 알아낼 방법이 없으며, 데이터를 보낸 순서대로 도착한다는 보장도 할 수 없습니다. 4. UDP는 TCP에 비해 훨씬 빠르게 전달된다는 장점이 있습니다. DatagramPacket 클래스 1. UDP 데이터그램은 java.net.DatagramPacket 클래스로 추상화한 것입니다. 2. DatagramPacket 클래스는 애플리케이션에서 주고 받을 데이터와 관련된 클래스이고, DatagramSocket 클래스는 실제 데..

Tistory

[Java] 자바 네트워크 유니캐스팅과 멀티캐스팅

유니캐스팅과 멀티캐스팅 1. 클라이언트와 서버간의 지속적으로 일대 일로 통신하는 개념을 유니 캐스팅이라고 합니다. 2. 일대 다의 통신을 멀티 캐스팅이라고 합니다. 유니 캐스팅 유니 캐스팅을 구현하기 위해서는 필수 조건이 서버측에 스레드를 생성해서 TCP 소켓을 유지 해야 합니다. 멀티 캐스팅 유니 캐스트 모델은 실시간 프로그램에서 서버의 정보를 모든 클라이언트가 공유할 때 문제점이 있는데 이런 문제를 해결할 수 있는 방법이 일대 다 전송을 지원하는 멀티 캐스팅 방법입니다. 한명의 클라이언트가 서버의 정보를 변경했을 경우 모든 클라이언트에게 전송함으로써 서로가 변경된 정보를 공유할 수 있는 애플리케이션을 만들 때 적합합니다. 또한 멀티 캐스팅 프로그램을 작성하기 위해서는 유니캐스트에서 생성된 스레드를 저..

Tistory

[Java] 자바 네트워크 프로토콜이란 무엇인가?

프로토콜란? 프로토콜이란 클라이언트와 서버간의 통신 규약입니다. 프로토콜의 분석방법 먼저 클라이언트가 보낸 메시지를 서버에서는 “##”를 구분자로 문자열을 토큰하여 문자를 분석하게 됩니다. 만약 이런 규약을 클라이언트가 위배하여 메시지의 순서를 바꾼다든지, 부적절 한 메시지를 보내게 되면 서버에서는 이를 파악하지 못하고 항상 동일한 처리를 하게 되기 때문에 다른 클라이언트에게 적절치 못한 메시지를 전송하게 됩니다. 프로토콜의 설계기법 프로토콜의 설계는 클라이언트와 서버간의 통신 규약을 만드는데 필요한 데이터가 무엇인지 를 설계하는 것입니다. 프로토콜의 설계 하기위해서는 클라이언트에서 필요한 기능이 무엇인지를 생각하고, 그 기능 에 대해 필요한 데이터가 어떤 것이 있는지를 분석할 수 있는 능력이 있어야 합..

Tistory

[Java] 자바 Thread(스레드) 사용법 & 예제

Thread란? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미합니다. 스레드와 태스크(혹은 작업)은 바꾸어 사용해도 무관합니다. 1. JVM에 의해 하나의 프로세스가 발생하고 main( ) 안의 실행문 들이 하나의 스레드입니다. 2. main( ) 이외의 또 다른 스레드를 만들려면 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현합니다. 3. 다중 스레드 작업 시에는 각 스레드 끼리 정보를 주고받을 수 있어 처리 과정의 오류를 줄일 수 있습니다. 4. 프로세스끼리는 정보를 주고받을 수 없습니다. 멀티스레딩이란? 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법을 말합니다. 장점 1...

Tistory

[Java] 자바 예외처리 Try Catch문 사용법

Error(에러)와 Exception(예외의 차이) 에러(Error)란 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는것을 말합니다. 이 경우 개발자는 대처할 방법이 극히 제한적입니다. 하지만 예외(Exception)은 다릅니다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. 예외가 발생하면 프로그램이 종료가 된다는것은 에러와 동일하지만 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료 되지 않고 정상적으로 작동되게 만들어줄 수 있습니다. 자바에서 예외처리는 Try Catch문을 통해 해줄 수 있습니다. 여러가지 예외들 예외 구문 이유 ArithmeticEx..

Tistory

[Java] 배열의 여러가지 선언 및 초기화 방법

배열이란 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높이는 것입니다. 변수는 한개의 데이터만 저장할 수 있습니다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 양의 변수를 선언해줘야하는 비효율성이 발생하죠. 그렇기에 좀 더 효율적인 방법이 필요한데 이것이 배열입니다. 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고 각 데이터에 인덱스(index)를 부여해 놓은 자료구조입니다. 여러가지 배열 선언 //int 타입 배열 선언 int[] i_array; int i_array[]; //배열 생성후 초기화하면 배열의 주소가 할당된다. int[] i_array = new int[8]; //초기값 0 String[] s_array = new Stri..

Tistory

[Java] Int 배열의 최댓값 최소값 구하기

배열의 최대값 최소값 구하기 For문을 활용한 방법 //최대값 최소값을 구할 int배열 int array[] = {4,3,2,1,10,8,7,6,9,5}; int max = array[0]; //최대값 int min = array[0]; //최소값 for(int i=0;i

Tistory

[C언어/C++] 문자열을 입력하면 알파벳순으로 정렬하여 출력하는 알고리즘

10개의 문자열을 입력받고 알파벳(사전) 순으로 정렬하는 문자열을 변형하는 알고리즘입니다. 문자열을 입력하면 알파벳순으로 정렬하여 출력하는 알고리즘 #include #include #include int convert_string(const void *a, const void *b) { return strcmp((char *)a, (char *)b); } int main() { char s[10][8]; for(int i=0;i

Tistory

[Java] 객체지향 콘솔 성적관리 프로그램

자바를 초창기때 배웠을때 만들어봤었던 콘솔 성적관리 프로그램입니다. 지금 보면 정말 별거아니지만 그 당시 밤을 새워가며 열심히 코딩했었던 기억이 나네요. 그때가 정말 그립습니다. ㅎㅎㅎ 프로그램 구조는 HashMap 이런식으로 되어있습니다. Student클래스에 학생성적의 정보를 담아두고 Map을 put하거나 remove하는 방식입니다. Main.java package CollectionScore; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Score score = new Score(); int i=0; while(true){ ..

Tistory

[Java] ArrayList로 구현한 Memory구조(Stack,Pop)

ArrayList를 처음 배울때 만들어봤었던 콘솔 Stack , Pop입니다. ArrayList의 add메서드와 remove메서드를 활용하면 쉽게 구현이 가능합니다. Main.java import java.util.Scanner; public class Main { public static void main(String[] args) { Queue qu = new Queue(); Stack st = new Stack(); while(true){ System.out.println("1.스택 2.큐"); Scanner sc = new Scanner(System.in); int select = sc.nextInt(); switch (select) { case 1: System.out.println("1.푸쉬 ..

Tistory

[Java] 현재날짜, 현재시간을 원하는 형태로 출력하는(Format) 다양한 방법

자바에서 현재 날짜와 시간을 출력해주는 방법은 아주 다양합니다. 그 다양한 방법중에서 대표적으로 3가지가 주로 사용되고 있죠. Date객체를 사용하는 방법, Calendar클래스의 getInstance() 메서드를 활용하는 방법, System클래스의 currentTimeMillis() 메스드를 활용하는 방법이 바로 그것입니다. 이번 포스팅에서는 현재날짜, 현재시간을 원하는 형태로 포맷팅하여 출력하는 방법에 대해 알아보도록 하겠습니다. 1. Date객체를 활용하는 방법 SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format2 = new SimpleDateFormat ( "yyyy년 MM월..

Tistory

[Java] 그래픽 GUI AWT 사용법

AWT란? 자바 언어가 탄생한 1995년에는 인터넷이 활성화되지 않았기 때문에 대부분의클라이언트 애플리케이션은 운영체제가 제공하는 네이티브 UI 컴포넌트를 이용하여 개발되었습니다. 그래서 Java1.0에 포함된 AWT는 운영체제가 제공하는 네이티브 UI컴포넌트를 이용하는 자바 라이브러리였죠. 그렇다보니 자바 애플리케이션이 실행되는 운영체제에 따라 UI의 모양이 서로다르고 종류도 제한적입니다. 하지만 비교적 쉽게 접할 수 있기에 콘솔에서 벗어나 Winodws개발을 하고싶은 자바개발자에게 입문코스?로 한번쯤은 해보고 넘어가는듯 합니다. AWT 구현순서 Container : 프로그램의 창의 역할을 합니다. 한개 이상의 컨테이너위에 컴포넌트들이 올려질영역입니다. (ex Frame, Panel, Dialog 등등..

Tistory

[Java] GUI 이벤트란 무엇인가?

이벤트란? 이벤트(Event)라는 것은 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체를 의미합니다. 예를 들어 메뉴를 선택했다는가, 아니면 마우스를 클릭하거나, 윈도우의 크기를 조절하거나 등의 행위를 뜻하는 것입니다. 이런한 방식의 프로그래밍을 이벤트 중심의 프로그래밍이라고 하는데 윈도우 프로그래밍에서 중요한 개념 중에 하나입니다. 이벤트 소스(Event Source)는 이벤트가 발생할 수 있는 대상을 의미하고 그 대상으로부터 이벤트가 발생하면 발생된 이벤트를 처리해서 결과를 낼 수 있도록 해주는 것을 이벤트 핸들러(Event Handler)라고 합니다. 자바에서의 이벤트 처리 1. 프로그램이 실행중에 운영체제(OS)가 해당 프로그램에서 이벤트가 발생이 되는지를 검사한다. 2. 이때 이벤트가 ..

Tistory

[Java] Swing 특징 및 구조 & 사용법 총정리

Swing이란? 자바의 JFC(Java Foundation Class)는 GUI 프로그래밍에 필요한 각종 킷을 모아놓은 것으로 현재는 GUI의 기능들을 구현할 수 있는 스윙, 2D, Drag&Drop 등을 지원합니다. 스윙을 사용하는 방법은 AWT와 거의 유사하나 AWT보다는 많은 컴포넌트 및 기능을 지원하고 있습니다. 스윙은 AWT와 달리 자바 프로그래밍으로 자체적인 제작된 컴포넌트이므로 플랫폼에 관계없이 모양이 동일하게 사용할 수 있습니다. Swing의 특징 1. 룩앤필(Look & Feel) 스윙에서 가장 획기적으로 바뀐 것 중에 하나가 컴포넌트의 화려함입니다. 이러한 외관(Look & Feel)을 프로그램을 실행하는 도중에 여러가지 형태로 바꾸어 사용 할 수 있는 기능을 제공합니다. 스윙은 순수한..

Tistory

[Java] Swing으로 만드는 미니언 성적관리프로그램 예제

자바를 배울 초창기때 만들었던 미니언 성적관리프로그램입니다. 소스를 정리하다가 발견했네요.... 안에 소스를 보니 가관이군요... 이런식으로 코딩을 했었다니. 원래라면 고치고 인터넷상에 올려야하지만 엄두가 나지않아 그냥 올립니다. 그냥 Swing을 어떤식으로 사용했는지 참고용으로만 사용해주시면 감사하겠습니다. 프로그램 실행화면은 아래와 같습니다. 실행방법1. 위의 압축파일을 다운받아서 압축을 풀어줍니다. 2. 소스를 보시다보면 위와같이 그림파일 경로를 지정해놓은 소스가 여럿 보이실겁니다. 이 경로를 1번에서 다운받았던 경로로 교체해주시고 실행시키시면 됩니다. [Java] 그래픽 GUI AWT 사용법[Java] GUI 이벤트란 무엇인가?[Java] Swing 특징 및 구조 & 사용법 총정리

Tistory

[Java] 람다식(Lambda Expressions) -> 사용법 & 예제

람다식이란? 람다식이란 "식별자없이 실행가능한 함수" 함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다. 함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expressions)을 지원하면서 기존의 코드 패턴이 많이 달라졌습니다. 자바스크립트에서 주로 봤었던 문법들을 이제 자바에서도 종종 보이곤 해요. 람다가 처음에는 생소하게 느껴질 수 있지만 문법이 간결한만큼 익숙해지면 가독성 면에서 장점이 큰 듯 합니다. (고급 프로그래머들중에서는 람다를 최대한 쓰지말라고 하는 사람도 있습니다.) 람다식 사용법 (매개변수, ...) -> { 실행문 ... } (매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합..

Tistory

[Java] 삼항연산자 사용법 & 예제

if문을 사용하여 코딩을 할 경우 코드 라인이 의미 없이 길어지는 경우들이 종종 생깁니다. if(){ }else if(){ } 이렇게만 해도 벌써 5라인이죠. 하지만 단순한 if문일 경우 라인수를 획기적으로 줄여주는 방식이 있습니다. 바로 삼항 연산자라는 것인데요. 이번 포스팅에서는 삼항 연산자의 사용법에 대해 알아보도록 하겠습니다. 삼항 연산자의 예를 가볍게 들어보겠습니다. 위와 같은 경우 괄호 안의 조건문이 참일 경우 int a에 50이 담기게 되고 거짓일 경우에는 40이 담기게 되는 코드입니다. 삼항 연산자는 (조건문) : ? 참 : 거짓이라는 문법을 가지게 됩니다. //if else int a; if(5 사용법 & 예제

Tistory

[Oracle] 계정에 테이블 DML 권한부여/취소하기(GRANT/REVOKE)

사용자가 테이블을 DROP하거나 ALTER한다면 큰 문제가 발생할 수 있습니다. 이런 문제를 방지하기 위해 DDL을 사용할 수 있는 관리자(MASTER) 계정을 따로두고 사용자(USER) 계정에는 해당 테이블의 SELECT, INSERT, UPDATE, DELETE 권한만 부여하여 운용하는 경우가 많습니다. 이번 포스팅에서는 관리자(MASTER)계정에서 사용자(USER)계정에 DML권한을 부여하는 방법에 대해 알아보도록 하겠습니다. 테이블에 권한 부여 --테이블에 DML권한 주기 --방법1 GRANT SELECT ON [TABLE] TO [USER_ID]; GRANT INSERT ON [TABLE] TO [USER_ID]; GRANT DELETE ON [TABLE] TO [USER_ID]; GRANT U..

Tistory

[Oracle] 전체 테이블중에서 원하는 Comment만 검색 & 수정하기

오라클 전체테이블 중에서 '원가요소'가 포함되어있는 Comment를 '관리계정'으로 바꾸라는 요청을 받았습니다. 사용하는 용어가 달라졌다고 하더군요.... 이런 요청을 받고 전체 테이블을 일일이 뒤져가면서 원가요소가 포함되어있는 Comment를 찾아서 관리계정으로 바꿔주는것은 굉장히 무식한 짓입니다. 쿼리문을 통해 한번에 간편하게 Comment를 바꾸는 방법에 대해 알아보겠습니다. 전체 테이블중에서 원하는 Comment만 검색 & 수정하기 사용한 방법 SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, DATA_LENGTH, COMMENTS FROM USER_TAB_COLUMNS A,USER_COL_COMMENTS B WHERE A.COLUMN_NAME LIKE '%%..

Tistory

[Git] 여러가지 소스 형상관리 툴 종류와 사용목적

소스 형상관리의 정의 소프트웨어 형상관리는 Software Configuration Management, 줄여서 SCM라는 단어를 쓰기도 하는데, SW개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대해 형상을 만들고, 이들 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동입니다. 단순히 말하자면 프로젝트를 진행하면서 생성하는 소스코드를 CVS나 SVN, 또는 GIT와 같은 버전 관리 시스템을 이용하는 것을 말합니다. 다수의 개발자가 프로젝트에서 동일한 기능을 동시에 개발한다고 할 때, 작성된 소스 코드와 변경사항을 확인하고, 수정하는 협업을 도와주는 시스템이라고 할 수 있습니다. 형상관리는 일반적으로 버전 관리 (version control, revision c..

Tistory

[Git] Git 레파지토리 생성 & 소스 올리기 (Git Bash활용)

GitHub에서 원격저장소를 만든 뒤 Git Bash를 활용하여 Push하는 방법입니다. GitHub Repository 생성 1. 아래 URL을 클릭하여 GitHub로 들어간 뒤 로그인 하고 좌측 상단에서 저장소 NEW 버튼을 클릭합니다. https://github.com/ 2. 생성 할 Repository의 주소와 설명등 상세 설정을 한 뒤 저장소 생성을 클릭하여 Repository를 생성합니다. git bash에서 소스 push 1. 원하는 소스폴더에서 git bash를 실행시킵니다. 2. $ git init/p> 깃을 init 시켜줍니다. (로컬저장소 만들기) 3. $ git status 올라가 파일이 있는지 현재 폴더에 있는 파일들을 확인합니다. 지금은 파일들이 빨간색으로 되어있지만 add작업을..

Tistory

[Git] 윈도우 Git 설치하기 (Git for Windows)

GIt을 사용하려면 먼저 Git이 PC에 설치되어 있어야합니다. Git설치방법에 대해 알아봅니다. 윈도우버전 Git설치하기 1. Git 설치파일을 다운로드 받습니다. 아래에 링크되어 있는 페이지에 들어가서 자신의 OS에 맞는 Git 설치버전을 받아주세요. Git다운로드 링크 바로가기 2. 약관을 읽어주고 Next를 눌러줍니다. 3. 설치경로를 선택하고 Next를 눌러줍니다. 4. 설치할 Component들을 선택합니다. 저는 기본으로 선택되어 있는것 이외에는 추가로 설치하지않고 Next를 눌러 진행하겠습니다. 5. 시작 메뉴에 폴더를 만듭니다. 시작메뉴에 폴더를 추가하고 싶지 않다면 Don't create a Start Menu folder 체크박스를 클릭하고 Next를 눌러주세요. 6. 깃의 기본에디터..

Tistory

[Git] GitHub 레파지토리(Repository) 삭제

Git Repositories를 만든 뒤 삭제하는 법을 몰라서 헤매시는 분들을 위해 이번 포스팅에서는 Git 원격 저장소 레파지토리 삭제 방법에 대해 알아보도록 하겠습니다. 1. 먼저 깃허브 사이트에가서 로그인을 한 뒤 삭제하고 싶은 레파지토리로 들어갑니다. 깃허브 바로가기 2. 자신의 레파지토리 리스트 중에서 자신이 삭제하고자 하는 레파지토리에 들어갑니다. 3. 삭제할 레파지토리에서 우측 상단의 Setting버튼을 클릭합니다. 4. Setting에서 스크롤을 밑으로 끝까지 내리게 되면 위와 같은 Danger Zone 나오는데요 여기서 가장 밑에 있는 Delete this repository버튼을 클릭합니다. 5. 그런 뒤 확인작업을 두 번 거쳐야 하는데요. 제거할 레파지토리명과 계정 패스워드를 차례로 ..

Tistory

[Git] 이클립스와 깃(GitHub) 연동하여 원격 저장소의 프로젝트 내려받기

이클립스와 깃을 연동하면 작업이 매우 편리해집니다. 이클립스에서 몇번의 클릭만으로 깃 레파지토리에 Push를 할수도 있고 Pull을 할 수도 있습니다. 이번 포스팅에서는 이클립스와 깃을 연동하는 방법에 대해 알아보도록 하겠습니다. 1. 일단 연동할 원격 레파지토리 주소를 복사하도록 하겠습니다. 제가 연동할 레파지토리 주소는 위와같습니다. 2. GIt Repositories창을 엽니다. 3. Clone a Git repository를 클릭합니다. 4. 첫번째 빨간박스의 주소는 Git원격 레파지토리의 주소를 복사하고있다면 자동으로 들어갑니다. 그 밑의 빨간박스에는 깃허브 아이디와 패스워드를 각각 입력하고 Next를 누릅니다. 5. 기본 Branch master를 체크해주고 Next를 눌러줍니다. 6. 원격 ..

Tistory

[Git] 이클립스 프로젝트를 깃(GitHub) 원격저장소에 올리기(Commit & Push)

이클립스에서 프로젝트를 깃 원격 저장소로 Commit하는 방법에 대해 알아봅시다. 1. 깃 원격저장소에 올리고싶은 프로젝트 -> 우클릭 -> Share Project를 클릭합니다. 2. 화면에 보이는 Use or create repository inparent folder of project 체크박스를 클릭합니다. 3. Create Repository 버튼을 클릭하여 로컬 저장소를 만듭니다. 4. Git Repositories를 엽니다. 5. Git Repositories에 로컬저장소가 잘 만들어졌는지 확인합니다. 위와같이 자신이 원격저장소에 올리고싶은 프로젝트가 있으면 로컬저장소가 잘 만들어진것입니다. 이제 원격저장소에 프로젝트를 올릴 차례군요. 6. 올리고싶은 원격저장소의 주소를 복사합니다. 7. G..

Tistory

[Git] 소스트리 (SourceTree) 설치/다운로드하기

얼마전 포스팅에서 GitBash를 사용하여 원격 레파지토리에 소스를 등록하는 작업을 해보았습니다. 이렇게 명령어 입력으로도 깃허브를 사용할 수 있습니다. 하지만 많이 불편하죠... 명령어를 다 외우는것도 만만치않은일입니다. 명령어를 사용하여 깃허브를 사용하는것이 불편한 분들을 위한 유틸리티가 있습니다. 바로 소스트리(Source Tree)라는 프로그램인데요. 소스트리란 Git을 그래픽화 시켜준다고 생각하시면 됩니다. 명령어 입력을 할 필요 없이 클릭만으로 Git의 모든 작업을 할 수 있습니다. 소스트리 (SourceTree) 설치하기 1. 소스트리 SetUp파일을 다운받습니다. 소스트리 설치URL 바로가기 위 경로로 가셔서 Download for Windows버튼을 눌러주세요. 2. 다운받은 SetUp파..

Tistory

[Java] 자바 소수점 n번째 자리까지 반올림하기

이번 포스팅에서는 자바에서 긴 소수를 반올림하여 n번째 자리까지 나타내는 방법에 대해 알아보겠습니다. 여러가지 방법이 있겠습니다만 Math.round();함수를 활용하거나 String.format(); 함수를 활용하는것이 대표적인 방식입니다. Math.round() Math함수의 round()함수는 실수의 소수점 첫번째 자리를 반올림하여 정수로 리턴시켜줍니다. 하지만 이 메서드를 잘 활용하면 소수점 몇번째 자리까지 나타내는것도 가능합니다. 예를들어 33.777*100을 하면 3377.7가 되겠죠. 여기서 round를 적용시키면 3378이라는 정수가 리턴될것입니다. 여기서 다시 100.0을 나눠주면 실수로 적용되어 나옵니다. (33.78이 나오게 됩니다.) 소수점 둘째 자리까지 나타내고싶으시면 100.0을..

Tistory

[Java] BufferedReader, BufferedWriter를 활용한 빠른 입출력

BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스입니다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달되됩니다. 출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달되기에 시스템의 데이터처리 효율성을 높여주며 버퍼스트림을InputStreamReader / OutputStreamWriter를 같이 사용하여 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능합니다. BufferedReader Java를 처음 접하시는 분들이 주로 받는 입력방식은 Scanner입니다. Scanner를 통해 입력을 받을경우 Space Enter를 모두 경계로 인식하기에 입력받은 데이터를 가공하기 매우 편리합니다..

Tistory

[블로그] 티스토리 FastBoot스킨 Https 적용하기(SSL)

티스토리도 드디어 보안접속 SSL이 적용이 되었습니다. 구글의 정책중의 SSL 웹페이지를 상위로 노출시켜주는 알고리즘이 있기에 이번 패치를 계기로 구글에서 좀 더 많은 유입이 되었으면 하는 소망입니다. 제가 사용하고 있는 스킨은 FastBoot라는 스킨입니다. 이 스킨은 몇년째 패치가 중단되어 제가 임의로 소스코드를 계속 수정해가며 사용하고 있는데요. 얼마전 저와같은 FastBoot스킨 사용자께서 FastBoot스킨 SSL적용방법에 대해 물으시기에 포스팅으로 방법을 자세히 소개해드리고자 합니다. 티스토리 FastBoot스킨 Https 적용하기(SSL) 1. 블로그관리 -> 블로그에서 보안접속을 "사용합니다"로 바꿔주고 변경사항 저장을 누릅니다. 2. 이렇게 해주면 블로그는 https로 적용이 되는데요. ..

Tistory

[Algorithm] ArrayList와 LinkedList란 무엇인가?

ArrayList(선형리스트) 선형 리스트는 배열과 같이 연속되는 기억장소에 저장되는 리스트를 말한다. 연접 리스트(Dense List) 또는 축차 구조(Sequential Structure)라고도 한다. 선형리스트의 특징 1. 가장 간단한 자료구조이다. 2. 접근속도가 빠르다. 3. 중간에 자료를 삽입하기 위해서는 연속된 빈 공간이 있어야 한다. 4. 기억장소를 연속적으로 배정받기 때문에 기억장소 이용 효율은 밀도가 1로서 가장 좋다. 5. 자료의 개수가 n개일 때 삽입 시의 평균 이동 횟수는 (n+1)/2이고, 삭제 시에는 (n-1)/2이다. 6. 삽입, 삭제 시 자료의 이동이 필요하기 때문에 작업이 번거롭다. LinkedList(연결리스트) 연결 리스트는 자료들을 반드시 연속적으로 배열시키지는 않고..

Tistory

[Algorithm] 스택(Stack)이란 무엇인가?

스택의 개념 1. 스택은 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조이다. 2. 스택은 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO)방식으로 자료를 처리한다. Overflow : 스택으로 할당받은 메모리 부분의 마지막 주소가 M번지라고 할 때, Top Pointer의 값이 M보다 커지면 스택의 모든 기억장소가 꽉 채워져 있는 상태이므로 더 이상 자료를 삽입할 수 없어 Overflow를 발생시킨다. Underflow : Top Pointer가 주소 0을 가지고 있다면 스택에는 삭제할 자료가 없으므로 Underflow를 발생시킨다. ※ Stack에 기억되어 있는 자료를 삭제시킬 때는 제일 먼저 삭제할 자료가 있는지 없는지부터 확인해야 한다. Stack의 응용분야 ..

Tistory

[Algorithm] 큐(Queue)와 데크(Deque)에 대해서

큐(Queue) 1. 선형 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구조이다. 2. 가장 먼저 삽입된 자료가 가장 먼저 삭제되는 선입선출(FIFO)방식으로 처리한다. 3. 시작과 끝을 표시하는 두 개의 포인터가 있다. 프런트(F) 포인터 1. 가장 먼저 삽이된 자료의 기억공간을 가리키는 포인터이다. 2. 삭제 작업을 할때 사용한다. 리어(R) 포인터 1. 가장 마지막에 삽입된 자료가 위치한 기억장소를 가리키는 포인터이다. 2. 삽입 작업을 할 때 사용한다. Queue의 응용분야 1. 창구 업무나 택시 정거장처럼 서비스 순서를 기다리는 등의 대기행렬의 처리에서 사용한다. 2. 운영체제의 작업 스케줄링에 사용한다. 데크(Deque) 1. 삽입과 삭제가 ..

Tistory

[Algorithm] 트리(Tree)구조란 무엇인가?

트리(Tree)의 정의 트리는 정점(Node)과 선분(Branch)을 이용하여 사이클을 이루지 않도록 구성한 Graph의 특수한 형태이다. 가족의 계보(족보), 연산수식, 회사 조직 구조도, 히프등을 표현하기에 적합하다. 트리(Tree) 관련용어 노드(Node) : 트리의 기본요소로서 자료 항목과 다른 항목에 대한 가지(Branch)를 합친 것 EX : A, B, C, D, E, F, G, H, ,I ,J ,K ,M 근 노드(Root Node) : 트리의 맨 위에 있는 노드 EX : A 디그리(Degree, 차수) : 각 노드에서 뻗어나온 가지의 수 EX : A=3 , B=2, C=1 단말 노드(Terminal Node) : 자식이 하나도 없는 노드 EX : K, L, F, G, M, I, J 비단말 노..

Tistory

[Algorithm] 여러가지 검색(Search)기법

여러가지 검색의 종류 검색이란 컴퓨터를 이용해서 기억공간에 보관중인 특정 레코드를 찾아내는 작업이다. 선형 검색(Linear Search) 1. 선형 검색은 순서화되어 있지 않은 파일에서 순차적으로 검색하는 방식으로 찾고자 하는 Key값을 첫번째 레코드 Key값으로부터 차례로 비교하여 검색하는 방식이다. 2. 순차검색(Sequential Search)라고도 한다. 3. 프로그램 작성이 비교적 간단하다. 제어 검색(Control Search) 1. 제어 검색은 반드시 순서화된 파일이어야 검색할 수 있다. 2. 한번의 비교 동작이 끝난 후 비교 대상이 된 레코드를 다음에 비교할 대상을 선택하는 기준으로 이용하여 검색하는 방식이다. 이분 검색(이진 검색, Binary Search) 1. 이분검색은 전체 파일을..

Tistory

[Algorithm] 해시테이블과 해싱함수에 대해서

해싱이란? 해싱은 Hash Table이라는 기억공간을 할당하고, 해시 함수(Hash Table)이라는 기억공간을 할당하고, 해시함수(Hash Function)을 이용하여 레코드 키에 대한 Hash Table내의 Home Address를 계산한 후 주어진 레코드를 해당 기억장소에 저장하거나 검색 작업을 수행하는 방식이다. 1. 해싱은 DAM(직접 접근)파일을 구성할 때 사용되며, 접근 속도는 빠르나 기억공간이 많이 요구된다. 2. 다른 방식에 비해 검색 속도가 가장 빠르다. 3. 삽입 삭제 작업의 빈도가 많을 때 유리한 방식이다. 4. 키-주소 변환 방법이라고도 한다. 해시테이블(HashTable) 해시테이블은 레코드를 한개 이상 보관할 수 있는 Bucket들로 구성된 기억공간으로 보조기억장치에 구성할 수..

Tistory

[Algorithm] 인덱스 구조란 무엇인가?

인덱스의 개념 인덱스는 데이터 레코드를 빠르게 접근하기 위해서 구성하는 것으로 다음과 같은 특징이 있다. 1. 인덱스는 데이터가 저장된 물리적 구조와 밀접한 관계가 있다. 2. 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다. 3. 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행할 수 있다. 4. 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는것이 효율적이다. 트라이(Trie)색인 트라이 색인은 탐색을 위한 키 값을 직접 표현하지 않고 키를 구성하는 문자나 숫자 자체의 순서로 키 값을 구성하는 구조이다. 키 값이 문자열 또는 숫자일 경우 일련의 키 값들에 대해 일부분이 같은 문자나 숫자로 구성되었을 떄 적합하다. 1. 가변 길이의 키 값을 효율적으로..

Tistory

[Oracle] 토드(Toad) 설치하기

오라클만 설치해서는 오라클을 효율적으로 다룰 수 없습니다. 오라클을 잘 사용할 수 있는 툴을 같이 다운받아줘야하죠. 대표적인 오라클 툴으로는 SQL Develoment와 Toad가 있습니다. 이번 포스팅에서는 Oracle for Toad의 다운방법에 대해 알아보도록 하겠습니다. 토드(Toad) 설치하기 1. Toad 설치/다운로드 경로 바로가기 위에 링크되어있는 사이트로 이동하시면 토드 홈페이지가 나옵니다. 그런 뒤 위와같이 Downloads -> Oracle -> Toad for Oracle을 차례로 클릭해줍니다. 2. Toad 무료버전 설치합니다. 그러면 위와같은 페이지가 나올텐데 여기서 Get Free Trial을 선택합니다. 3. 개발자를 위한 버전과 DBA를 위한 버전으로 나뉘어집니다. 저희는 ..

Tistory

[Oracle] 오라클 테이블 생성 방법(PK설정)

오라클에서의 테이블 생성 문법은 CREATE TABLE [테이블명]을 먼저 선언해준 뒤 그 밑으로 자신이 만들고 싶은 컬럼들을 써주시면 됩니다. 오라클 테이블 생성문법 CREATE TABLE EX_TABLE ( COMPANY VARCHAR(7) NOT NULL, DEPT VARCHAR(20) DEFAULT '미정' NOT NULL, TP VARCHAR(20), USER_ID VARCHAR(20) NOT NULL, TODAY DATE DEFAULT SYSDATE NOT NULL ); 오라클 테이블 PK설정 CREATE UNIQUE INDEX PK_EX_TABLE ON EX_TABLE (COMPANY,DEPT,TP,USER_ID); 오라클 테이블에 PK를 주는 방법입니다. PK생성 문법은 CREATE UNI..

Tistory

[Oracle] 테이블 & 컬럼 Comment 추가,확인,삭제 방법

테이블을 생성할 시 테이블과 컬럼에다가 설명을 달 수 있습니다. 이렇게 해놓으면 처음에는 좀 귀찮아도 나중에 컬럼의 뜻이 기억이 안날때 Comment를 찾아본다면 이 컬럼이 왜 존재하는지 추후에도 알 수 있습니다. 대개 의무적으로 등록하게 합니다. 오라클 테이블 & 컬럼 Comment 추가,확인,삭제 방법 Comment 설정 --테이블 Comment 설정 COMMENT ON TABLE [테이블명] IS [Comment]; COMMENT ON TABLE EX_TABLE IS '예제 테이블'; --컬럼 Comment 설정 COMMENT ON COLUMN [테이블명].[컬럼명] IS '[Comment]'; COMMENT ON COLUMN EX_TABLE.DEPT IS '부서'; COMMENT ON COLUMN..

Tistory

[Oracle] 새로운 테이블에 데이터 이관, 복사, 백업하기

테이블 백업은 굉장히 많이사용합니다. 예를들어 테이블의 구조를 바꿔야하는데 테이블안에 많은 데이터들이 있을때 필히 백업을 해주어야 혹시나 있을 문제에 대비할 수 있습니다. 복사 / 백업할 테이블 확인 --테이블 구조 조회 DESC [테이블명]; DESC MEMBER_EX; --테이블 데이터 조회 SELECT * FROM [테이블명]; SELECT * FROM MEMBER_EX; 테이블 복사 CREATE TABLE [복사된 테이블 명]AS SELECT * FROM [복사할테이블] CREATE TABLE MEMBER_EX_20180914 AS SELECT * FROM MEMBER_EX 복사된 테이블 확인 --테이블 구조 조회 DESC [테이블명]; DESC MEMBER_EX_20180914; --테이블 데이..

1 2 3 4 5 6 7 8 9 10