2021 정보처리기사/필기 요약

[정보처리기사 필기] 1과목 키워드 정리

1과목 소프트웨어 설계 1.1 요구사항 확인 폭포수 모형 - 소프트웨어 개발도 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론. - 고전적 생명주기 모형 / 선형 순차적 모형 - 제품의 일부가 될 메뉴얼을 작성해야 함. - 각 단계가 끝난 후에 다음 단계를 수행하기 위한 결과물이 명확하게 산출 되어야 함. - 타당성 검토 > 계획 > 요구 분석 > 설계 > 구현 > 시험 > 유지보수 나선형 모형 - 점진적 모형: 보헴이 제안. - 나선을 따라 돌 듯이 여러 번의 소프트웨어 개발 과정을 거처 점진적으로 완벽한 소프트웨어를 개발하는 것. - 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는..

2021.04.06 게시됨

[C] C언어 문자열 사용 공백 포함 회문 판별하기 포스팅 썸네일 이미지

CS/C

[C] C언어 문자열 사용 공백 포함 회문 판별하기

문자열 함수를 사용해서 공백 포함 회분 판별하는 함수 만들어서 실행하는 프로그램이다. ​ 포인트 1) 회문 = 앞으로 읽어도 거꾸로 읽어도 같은 글이어야 한다. 내이름은 이효리 거꾸로 해도 이효리 처럼..? 예를 들어 anna 같은 것들이 있다. -> 문자열을 비교하기 위해 문자열의 크기/2 만큼 반복해서 첫문자와 마지막 문자, 그리고 다음 문자 두개 이런식으로 비교할 것임. ​ 포인트 2) 공백과 대소문자 구별은 하지 않도록 한다. 예를 들어 go dog, Able was I ere I saw Elba 와 같은 문장도 회문이다. -> 여기서 모든 문자를 대문자로 통일해주기 위해 ctype 헤더 파일을 쓸 예정 (#include ) -> 문자열에 공백이 있을 때 한칸씩 땡겨서 공백을 없애줄 것임 ​ 포인..

2021.04.06 게시됨

[OS] 리눅스 C언어로 다중 pthread semaphore 사용 예제 포스팅 썸네일 이미지

CS/OS

[OS] 리눅스 C언어로 다중 pthread semaphore 사용 예제

리눅스 운영체제 사용이 서툰데 아무래도 phtread.h 와 semaphore.h 사용이 직관적이어서 윈도우로 실습 해보다가 리눅스로 갈아타서 작업했다. 우선 리눅스에서 c 컴파일 하는 방법은: 폴더를 생성한 후에 해당 폴더에서 터미널을 켜서 작업한다. (gcc나 vim이 깔려 있는 걸 가정했다.) 커맨드를 입력하면 입력창이 나온다. I를 눌러서 insert 모드로 전환한 후에 코드를 작성하면 된다. 작성 다 한 후에는 :wq 를 치면 저장된다. 그리고 그냥 나는 텍스트편집기로 수정해서 컴파일 하긴 했다. 프로그램의 목표는 간단하게 semaphore 함수 (wait, signal)을 사용해서 두 개의 함수가 돌아가도록 하는 것이다. count라는 정수형 전역변수에 각각의 함수가 접근하여 한 함수는 100..

2021.04.06 게시됨

[Spring] 스프링이 동작하는 과정 (의존성 주입 테스트) 포스팅 썸네일 이미지

Tools/Spring

[Spring] 스프링이 동작하는 과정 (의존성 주입 테스트)

[1] 스프링이 동작하는 과정 2개의 클래스와 'root-context.xml'가 작동하는 원리 1) 스프링 프레임워크가 시작되면 먼저 스프링이 사용하는 메모리 영역(컨텍스트)을 만듦. 스프링에서는 ApplicationContext라는 이름의 객체가 생성됨. 2) 객체를 생성 & 관리해야 하는 객체들에 대한 설정: root-context.xml 3) root-context.xml 에 설정되어 있는 태그의 내용을 통해 지정된 'org.zerock.sample' 패키지를 스캔함. 4) 해당 패키지에 있는 클래스들 중에서 @Component 어노테이션이 존재하는 클래스의 인스턴스를 생성 5) Restaurant 객체는 Chef 객체가 필요하다는 어노테이션 @AutoWired 설정이 있으므로 스프링은 Chef ..

2021.04.06 게시됨

[Spring] 스프링 기초: 의존성 주입 설정 포스팅 썸네일 이미지

Tools/Spring

[Spring] 스프링 기초: 의존성 주입 설정

목표: 레스토랑 객체를 만들고 셰프 객체를 주입하자! - Spring 에서 의존성 주입을 구현할 때: 생성자를 이용한 주입 + setter 메소드(Lombok으로 자동 구현) [01] 예제 클래스 생성 - 일반적으로 주입할 객체는 클래스가 아닌 인터페이스로 설계하는 것이 좋음. - Chef 클래스 - @Data: Lombok의 setter를 생성하는 기능, 생성자, @ToString, @EqualAndHashCode, @Getter/@Setter 등을 자동으로 생성하도록 하는 어노테이션 - Restaurant 클래스 - 코드가 의미하는 것: Restaurant 객체는 Chef 타입의 객체를 필요로 한다는 상황 - @Component: 스프랭에게 해당 클래스가 스프링이 관리해야 하는 대상임을 표시하는 어노..

2021.04.06 게시됨

[Spring] 스프링 프레임워크의 주요 특징 포스팅 썸네일 이미지

Tools/Spring

[Spring] 스프링 프레임워크의 주요 특징

1.1 스프링 프레임워크의 간략한 역사 ▶ 프레임워크: 뼈대나 근간을 이루는 코드들의 묶음 ▶ 프레임워크의 장점 - 프레임워크를 사용하게 되면 프로그램의 기본 구조를 정한 뒤 다른 팀원들은 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 됨. (개발자에 따라서 프로그램의 구조가 천차만별이 되는 상황을 막음) - 개발에 필요한 구조가 이미 코드로 만들어 놓았기 때문에 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능. - 일정한 품질이 보장되며 개발시간이 단축 됨. ▶ 스프링은 경량 프레임워크: 특정 기능 위주로 간단한 jar 파일 등을 이용해서 개발이 가능하도록 구성된 프레임 워크 ▶ 스프링 프레임워크의 차별성 - 복잡하지 않음: 일반적인 자바를 이용하기 때문에 진입 장벽이 높지 않고,..

2021.04.06 게시됨

[DB] SQL의 Union, UnionAll 사용법 포스팅 썸네일 이미지

DB

[DB] SQL의 Union, UnionAll 사용법

Union 여러개의 sql문을 합쳐서 하나의 sql문으로 만들어주는 방법이다. 두 개의 쿼리문의 합집합을 만드는 역할. Union UnionAll 공통점 두 쿼리문을 하나로 합쳐준다. 차이점 두 쿼리의 결과의 중복값을 제거해서 보여줌. 중복값도 전부 다 보여줌. 특징 / 주의 사항 칼럼명이 같아야 한다. (같지 않다면 AS를 사용해서 같게 만든다) 칼럼별 데이터 타입이 같아야 한다. 중복값 제거 연산이 없으므로 더 빠르다.

2020.01.06 게시됨

[DB] SQL의 JOIN 사용법 포스팅 썸네일 이미지

DB

[DB] SQL의 JOIN 사용법

Join 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법이다. 보통 Primary Key 혹은 Foriegn key로 두 테이블을 연결한다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야 한다. Inner Join: 두 테이블의 교집합 Left Join Right Outer Join Full Join: 두 테이블의 합집합. Self Join: 자기 자신과 자기 자신을 조인한다는 의미.

2020.01.06 게시됨