OSI 7 Layer (OSI 7 계층)
2020. 10. 28. 20:34
시스템/네트워크
OSI 7 Layer (OSI 7 계층) 국제표준화기구(ISO)에서 개발한 모델 네트워크에서 통신이 일어나는 과정을 7개의 계층으로 표현한 것이다. OSI 7계층은 다음과 같이 이루어져 있다. 계층 계층명 7 계층 (7 Layer) 응용 (Application) 6 계층 (6 Layer) 표현 (Presentation) 5 계층 (5 Layer) 세션 (Session) 4 계층 (4 Layer) 전송 (Transport) 3 계층 (3 Layer) 네트워크 (Network) 2 계층 (2 Layer) 데이터링크 (DataLink) 1 계층 (1 Layer) 물리 (Physical) 7~5 계층을 상위층, 4~1 계층을 하위층이라고 한다. 예전에 정보처리기사를 공부할 때 잠깐 보긴 했었는데 그 때에는 물-..
[Swift] 15. 열거형(enum) 기본
2020. 10. 26. 17:36
iOS/Swift
스위프트에서의 열거형은 다른 언어의 열거형과 많이 다르다고 한다. 열거형은 강력한 기능을 가지고 있어 잘 알아두고 사용하면 좋다고 한다. - 유사한 종류의 여러 값을 한 곳에 모아서 정의한 것이다. 예) 요일, 월, 계절 등 - enum 자체가 하나의 데이터 타입으로, 대문자 카멜케이스를 사용하여 이름을 정의한다. - 각 case 는 소문자 카멜케이스로 정의한다. enum BootCamp { // 대문자 카멜케이스 case iosCamp // 소문자 카멜케이스 case androidCamp case webCamp } - 각 case 는 그 자체가 고유의 값입니다. (각 case에 자동으로 정수값이 할당되지 않음) - 각 case 는 한 줄에 개별로도, 한 줄에는 여러개도 정의할 수 있습니다. eum 이름..
[Swift] 14. 구조체와 클래스 비교하기
2020. 10. 20. 21:01
iOS/Swift
구조체와 클래스는 비슷한 점도 있지만 다른 점도 분명하게 있다고 생각한다. 그래서 구조체와 클래스를 비교해서 정리하기로 했다. 구조체와 클래스의 공통점 - 값을 저장하기 위한 프로퍼티를 정의한다. - 기능성을 제공하기 위한 메소드를 정의한다. // 구조체 정의 struct People { // 값을 저장하기 위한 프로퍼티 정의 var name: String = "jaynam" var age: Int = 28 var gender: String = "male" // 기능성 제공을 위한 메서드 정의 func getPeopleInfo() { print("Name : \(name) , Age : \(age) , Gender : \(gender)") } } // 클래스 정의 class Computer { // 값을..
[Swift] 13. 클래스(class) 기본
2020. 10. 20. 19:34
iOS/Swift
1. 클래스(class)란? 클래스는 "참조(reference) 타입" 이다. 클래스는 값 타입인 구조체와 달리 참조 타입인데 그럼 참조 타입이란? 값 타입은 데이터를 전달할 때 원본을 복사해서 전달했기 때문에 메모리 공간을 공유했지만 참조 타입은 데이터를 전달할 때 값의 메모리 위치를 전달한다. 타입 이름은 대문자 카멜케이스를 사용한다. 스위프트에서 클래스는 다중 상속이 되지 않는다. 스위프트에서 상속은 클래스 프로토콜 등에서 가능하고 열거형, 구조체는 상속이 불가능하다. 그리고 스위프트는 다중 상속을 지원하지 않는다는 점을 알아두자. 2. 클래스 문법 및 사용 클래스는 다음과 같이 사용할 수 있다. class 이름 { 구현부 } 구조체와 다르지 않아 보인다. 구조체는 struct 로 정의하고 클래스는..
[Swift] 12. 구조체(struct) 기본
2020. 10. 18. 20:20
iOS/Swift
1. 구조체란? 스위프트 대부분 타입은 구조체로 이루어져 있다. 구조체는 "값(value) 타입" 이다. 여기서 값 타입이란 무엇일까? 상수/변수에 할당되거나 함수에 들어갈 때 그 값이 복사되어 전달된다는 의미이다. 추가적으로, 복사되어 전달된다는 의미는 복사본을 생성한다는 것이 아니라 원본과 복사본이 메모리 공간을 공유하게 만든다는 점이다. 그래서 스위프트의 구조체는 다른 언어보다 더 기능성에 가깝다고 한다. 스위프트에서 모든 기본 타입은 값 타입이고, 구조체로써 구현된다. 그래서 대부분의 타입은 구조체로 이루어져있다고 한다. 타입 이름은 대문자 카멜케이스를 사용하여 정의한다. 2. 구조체 문법 및 사용 struct 이름 { 구현부 } 간단한 샘플을 만들어보았다. struct Sample { var m..
리눅스 hostname 변경하기 (centos7)
2020. 10. 12. 16:00
리눅스/Linux
hostname 이란 말 그대로 서버 이름을 말한다. 서버가 여러 개일 경우 헷갈리기 때문에 각 서버의 이름을 따로 정해주어 사용하는게 좋다. 지금 내 hostname 을 확인해보면 root 는 사용자 계정이고 localhost 는 서버의 이름이다. 즉, root 계정으로 localhost 계정으로 접속했다는 것을 알 수 있다. 서버 이름은 다음과 같이 바꿀 수 있다. 1. /etc/hostname 을 확인한다. 2. /etc/hostname 안의 내용을 vi 에디터를 이용해 바꿔준다. localhost.localdomain 을 dev-server 라고 바꿔주었다. 3. 변경된 내용 확인 4. 변경된 hostname 을 적용한다. 5. 재접속 후 변경된 서버 이름 확인 추가적으로, 더 쉬운 방법이 있었다..
[Swift] 11. 옵셔널 추출 (Optional Unwrapping)
2020. 10. 8. 18:10
iOS/Swift
옵셔널 어떻게 꺼내서 활용하고 어떻게 사용할 수 있는지 공부해봤다. 옵셔널의 값을 꺼내는 방법에는 2가지 방법이 있다. 옵셔널 바인딩 | Optional Binding 옵셔널 안에 값이 있는지 확인한 후에 값을 가져오기 때문에 nil 체크를 함과 동시에 안전한 값을 추출할 수 있다. 옵셔널 바인딩은 if-let 구문을 사용해서 옵셔널의 값을 가져올 수 있다. if-let 구문 또는 if-var 구문을 통해서 옵셔널의 값이 잇는지 없는지 확인하고 가져온다는 뜻인데 예제를 통해 확인해볼 수 있다. func printName(_ name: String) { print(name) } var myName: String? = nil if let name: String = myName { printName(name)..
리눅스가 설치된 노트북 덮개를 덮어도 안 꺼지는 방법 (CentOS 7)
2020. 9. 25. 13:12
리눅스/Linux
/etc/systemd/logind.conf 설정 파일을 확인해보면 HandleLidSwitch=suspend 부분을 찾을 수 있다. suspend 의 값을 ignore 로 변경해준다. // 변경할 설정파일 vi 편집기로 열기 # vi /etc/systemd/logind.conf // HandleLidSwitch 설정 값 변경 후 저장 HandleLidSwitch=suspend -> ignore 그리고 systemd-logind 서비스 재시작 ! #systemctl restart systemd-logind 그리고 노트북을 덮고나서 잘 작동하는지 확인해본다. CentOS 뿐 만 아니라 우분투도 가능하다. - 참고 사이트 - road-fire.tistory.com/entry/CentOS-7-%EB%85%B8..