Programming 71

[프로그래밍 언어론] 1. 프로그래밍 언어 소개

* 프로그래밍 언어란? 1) 정의 - 프로그램 : 컴퓨터가 수행할 명령어를 순서대로 나열해둔 것 - 프로그래밍 언어 : 컴퓨터가 수행할 수 있고, 사람이 읽을 수 있는 형태로 계산을 나타내는 표기 체계 2) 특징 - 형식: 주로 글 / 내용 : 엄밀한 규칙, 정확한 의도 / 방향성 : 단방향 자연어 - 형식: 말과 글 / 내용 : 모호, 함축 / 방향성 : 양방향 3) 기능 (1) 기본 기능 - 작성력 : 프로그래머의 의도를 나타낼 수 있음 - 가독성 : 프로그램을 쉽게 해독할 수 있게 함 - 실행 가능성 : 컴퓨터에서 실행될 수 있도록 함 (2) 부가 기능 - 추상화 : 어떤 대상을 간략하게 추려 나타냄 ex) o 엄밀한 규칙에 따라 정의됨 - 구조적 : 복잡한 구조를 나타낼 수 있어야함 --> 자료구..

[운영체제] 운영체제의 구성, 프로세스, 쓰레드

1. 프로세스 관리자 - 프로세스 생성/삭제, CPU 할당을 위한 스케줄 결정 - 프로세스의 상태를 관리하며 상태 전이를 처리 2. 메모리 관리자 - 메모리(주기억장치) 공간에 대한 요구의 유효성 체크 - 메모리 할당 및 회수 - 메모리 공간 보호 3. 장치 관리자 - 컴퓨터 시스템의 모든 장치를 관리 - 시스템의 장치를 할당, 작동 시작, 반환 4. 파일 관리자 - 컴퓨터 시스템의 모든 파일을 관리 - 파일의 접근 제한 관리 - 파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수 1. 프로세스 1) 프로세스(process) : 실행 중인 프로그램 - 프로그램 : 동작하지 않는 정적·수동적 개체 - 프로세스 : 동작을 하는 능동적 개체 2) 운영체제로부터 자원을 할당받아 동작 - 자원 : CPU, 메..

[데이터베이스시스템] ER모델 (2장. 데이터베이스 모델링)

# ER모델 (=개체-관계 모델) - 정의: 개체(Entity)와 개체 사이의 관계(Relationship) → ERD (D: Diagram) - 구성요소 : 1) 개체집합 2) 관계집합 3) 속성 ==> '학생'개체집합과 '학과' 개체집합은 '전공' 관계집합으로 연결된다. ==> 관계집합 : 개체 집합과의 연결관계. # 속성 - 개체를 구체적으로 설명 - 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분 ===> 1) 단순속성 vs 복합속성 2) 단일값 속성 vs 다중값 속성 3) 유도 속성 vs 저장 속성 1) 단순 속성 vs 복합속성 - 단순 속성 : 더 이상 작은 구성요소로 나눌 수 없는 속성 ex) 성별 --> '여자'를 쪼개서 '여'와 '자'로 쪼개면 의미를 잃는다. - 복합 속성 :..

[Java] Comparator 정리 - 사용법, 예시코드, 정렬기준 여러개일 때

저번 Comparable 글에 이어 Comparator에 대한 글을 작성해보려 한다. Comparator 1. Comparator? - 기본적이지 않은 정렬(int/long을 내림차순 정렬, String을 사전역순으로 정렬, 여러개의 기준으로 정렬...)할 때 사용한다. 예를 들어, 아래와 같은 리스트가 있다고 치자. 이 리스트는 Book2 클래스로 구성되어 있는데, 이 Book2 클래스는 title(책 제목), author(저자), company(출판사), year(출간년도)로 구성되어 있다. ( 단순한 list (int로만 구성되었거나하는 list)를 Comparator를 이용해서 정렬하는 예제는 다루는 블로그 글이 많아서, 이 글에서는 일부러 class로 이루어진 list로 예시를 들었다. ) im..

[Java] Comparable 정리 - 사용법, 예시코드

친구들과 알고리즘 스터디를 하다가, 2개 이상의 조건으로 정렬을 하는 문제에서 Comparable/Comparator를 사용할 일이 있었다. (참고문제: 백준 1181번 단어정렬 문제 ) Comparable/Comparator 사용법이 익숙하지 않아서 이 포스팅에서 정리하려고 한다. ※ [참고] 이 포스팅에서 사용한 코드 전체는 아래의 Github url에서 보실 수 있습니다. https://github.com/sujinlee0616/Algorithm/blob/master/JavaExercises/sujin/format/ComparableEx.java 1. Comparable ? - 기본적인 정렬(int/long 오름차순, String 사전순 정렬)을 구현할 때 사용한다. - Java에서 제공하는 정렬 ..

[Java] printf 출력서식 - %d, %f, %c, %s

1. \n : new line: 한 줄 띄움 ex) System.out.println("안녕\n하세요"); ==> 출력결과: 안녕 하세요 2. \t: tab : 일정 간격 띄움 ex) System.out.println("아이유\t LvoePoem \t 2019년 12월 발매"); ==> 출력결과: 아이유 LvoePoem 2019년 12월 발매 3. \": 쌍따옴표 출력 ex) System.out.println("\"Hello, Java\""); ==> 출력결과: "Hello, Java" 1. println: 출력 후 한 줄 띄움 2. pirnt: 출력 후 줄 띄우지 X. 한 줄로 쭉 출력. 3. 서식이 있는 출력 - JDK 1.5 이상에서만 가능. printf에서만 가능. println에서는 불가. 1)..

[Mac] 맥북 와이파이 연결 안 될 때 - "WPA2 암호가 필요합니다."

맥북이 와이파이 연결이 잘 안 돼서 헤매다가 해결했다. 에러 메시지: "(와이파이 이름) Wi-Fi 네트워크는 WPA2 암호가 필요합니다." 현상: 비밀번호를 제대로 입력해도 위와 같은 오류메시지가 뜨면서 연결이 안 되었다. 와이파이를 껐다가 다시 켜거나 해도 마찬가지였고, 간헐적으로 맥북 전체를 종료했다가 다시 켜면 되는 경우도 있었지만 3번에 1번 꼴이었다. 해결방법: 시스템 환경설정 > 네트워크 > 와이파이 > 고급 > TCP/IP 탭 > 'DHCP 임대 갱신' 클릭. 이렇게 조치하면 와이파이가 잘 연결되는 것을 확인할 수 있다. # [참고] DHCP - 이틀 전에 면접에서 'DHCP가 무엇인가?'를 물어봐서, 겸사겸사 여기에 정리한다. - DHCP: Dynamic Host Configuration..

Programming/Etc 2020.06.27

[Git] CRLF, .gitattributes, 새로운 branch 가져오기, 원격 branch 삭제

Git 관련해서, 은근히 자주 쓰는데 잘 까먹는 것들. #1. github에 새로 만든 branch 가져오기 git remote update #2. github 원격브랜치 삭제 git checkout dev // 삭제하려는 브랜치가 아닌 다른 브랜치에 checkout git branch --delete branchname // 삭제 원하는 브랜치를 로컬에서 삭제 git push origin :branchname // 원격에서도 삭제 #3. CR/LF https://www.lesstif.com/gitbook/git-crlf-20776404.html #4. .gitattribute 이용 - Github에서 주 언어로 표시된 것을 변경하고 싶을 때 https://musma.github.io/2019/08/26..

Programming/Git 2020.06.05

[Git] Please commit your changes or stash them before you merge. 해결방법

프로젝트를 하면서 팀원들이 이 오류로 3번은 부른 것 같다. Your local changes to the following files would be overwritten by merge: 파일명 Please commit your changes or stash them before you merge. 원인) pull 받을 파일 중, 내가 로컬에서 수정한 파일이 있기 때문이다. 예를 들어 다음과 같은 상황이다. 월요일: 10번째 커밋. 화요일: 나는 10번째 커밋을 pull 받았다. 수요일: 팀원A가 10번째 커밋을 pull 받고, index.html과 hello.html을 수정한 후 11번째 커밋으로 push했다. 금요일: 내가 새로 pull 받는 걸 까먹고, index.html에 무언가를 수정했다. ..

Programming/Git 2020.04.18

[Java] Annotation

- Annotaion: 프로그램 소스코드 안에, 다르프로그램을 위한 정보를, 미리 약속된 형식으로 포함시킨 것. 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에 유용한 정보를 제공할 수 있다. - 표준 애너테이션: 자바에서 기본적으로 제공하는 애너테이션들. 첫번째 표의 5개와 두번표의 meta annotation 5개는 표준 annotation. Annotation 기능 @Override 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. @Override 애노테이션을 붙이면, 메서드의 이름을 잘못 적는 실수를 방지할 수 있다. (컴파일러가 같은 이름의 메서드가 조상에 있는지 확인하고 없으면 에러메시지 출력해주기 때문.) ※ 오버라이딩: 조상 클래스로부터 상속받은 메서드의 내용을 자손..

반응형