개인적으로 다른 사이트(?)를 하나 더 운영하고 있다. 사실 티스토리를 시작하면서 그쪽 관리가 소홀해졌지만, 댓글과 같은 것은 가능한 성심성의것 답변을 하고 있다. 그중 이렇게까지 많은 관심을 받아본 적이 없던 컨텐츠가 바로 YBM IT에서 주관하는 COS 자격 시험이다. 이 자격시험에 관한 게시물이 인기가 많고 관심을 많이 받는 이유가 있다. 1. 그리 오래되지 않은 시험이라 정보가 부족하다. 2. 2018년부터 점차적으로 소프트웨어 교육을 의무화 하는데 scratch언어가 사용될 것이다. 3. COS 시험은 scratch 언어로 보는 CBT방식의 자격 시험이다. 그래서 온오프라인에서 자주 받았던 질문을 정리 해보려한다. (네가 뭔가 이런 소릴 하냐고, 신빙성 있는 내용이냐고 의심스럽다면 이 링크를 참..
프로그래밍 언어
자바에서 인터페이스를 사용하는 이유가 무엇일까? 아마 인터페이스를 처음 접해보는 분들이 많이 궁금해 하는 부분일거라고 생각한다. 그냥 그 기능을 클래스로 구현해도 될 것 같은데 번거롭게(?) 인터페이스까지 사용해서 또 인터페이스에 대한 학습도 해야하기 때문이다. 이세상 모든건 그게 왜 필요한지를 알면 이해하는데 도움이 많이 된다. interface라고 쓰는 이 인터페이스는 결론부터 얘기하면 '공동 작업시 충돌을 방지하기 위해서'라고 한다. 다른 많은 이점이 있지만, 처음 내가 배울 당시 인터페이스 사용 이유는 공동 작업을 할때 유연함을 위해서다. 다음과 같은 상황을 생각해보자. A씨는 필기도구를 사용해서 글씨를 쓰는 프로그램을 개발하는 프로젝트를 진행하고 있다. 그러던 중 같은 팀의 연필을 개발하는 김개..
Q > 예를 들어 int[] a = new int[5]가 있으면 이 배열도 객체라는데 무슨말인지 잘 모르겠습니다. int라는 이름의 클래스가 있다는 말과 동일하나요? Integer Wrapper 클래스와 연관성은 없는 것 인가요? 알기 쉽게 설명해주세요. A > 배열을 객체라고 부른다. 그 이유가 무엇일까? 보통 객체를 생성한다라고하면 클래스의 객체를 많이 떠올린다. 그렇다고 클래스부터 설명을 할 수는 없는 노릇이다. 클래스에 대해서는 안다고 가정하고 클래스와 객체와의 관계에 대해 생각해보자. 클래스는 자료형이다. 이 사실을 잊어선 안된다. 왜냐면 자료형은 그 자료가 가진 형태를 나타내는 것이기 때문에 스스로는 사용될 수 없다. 누군가가 그 형태를 가지는 실체를 만들어 내야만 사용할 수 있다. 이런 관점..
나는 개인적으로 클래스와 객체를 설명할 때 붕어빵 틀을 비유하는걸 싫어한다. 마음에 들지 않는다. 내가 배울 당시 이렇게 배우지 않았을 뿐만 아니라 개인적으로 잘 와닿지도 않았다. 그래서 내가 배운 방법으로 클래스란 무엇이며 이 클래스와 객체와의 관계를 어떻게 이해하면 좋은지 정리해보려 한다. 클래스는 우리가 일상 생활속에서 볼 수 있는 모든 것들을 표현할 수 있는 도구라고 생각하는 것도 좋은 발상이다. 클래스를 구성하고 있는 큰 두가지 개념이 있다. 하나는 멤버필드라는 개념이며 다른 하나는 멤버 메서드라는 개념이다. 멤버 필드란, 그 클래스가 표현하고자 하는 대상이 가지는 속성들을 의미한다. 높이, 색상, 속도, 속력, 방향, 무게 등 일반적인 사물들이 가질 수 있는 모든 속성들을 말한다. 멤버 메서드..
17년 4월 23일 아침 9시 30분 제 6회 YBM IT에서 주관하는 COS (Coding Specialist) 1급 시험을 보고 왔다. 시험을 보러 가기 전에 이것 저것 검색을 해봤는데 1급에 대한 후기가 없어서 남겨본다. 시험에 대해 간단히 소개를 하자면, COS시험은 CBT방식의 시험이다. CBT방식은 Computer Based Testing으로 컴퓨터를 사용해서 컴퓨터가 채점하는 방식의 시험이다. 또 다른 방식으로는 PBT라고 하는 Paper Based Testing방식도 있다. 이 시험을 응시하기 위해 기본적으로 갖추고 있어야 할 지식은 '스크래치 언어'이다. 추후 계획은 다른 진입 장벽이 낮은 언어들에 대해서도 시험이 만들어질 것이라고 한다. (언제인진 모르겠지만) 난이도는 그렇게 어렵지 않..
java 개발을 하려면 환경변수를 설정해야한다. 아니 더 정확히는 명령 프롬프트에서 컴파일하고 실행하려면 환경변수를 설정해야 한다. 명령 프롬프트는 cmd창으로 알고 있는 보통 검정색 있어보이는 화면을 말한다. 우선 환경변수라는것이 무엇인지부터 알아보자. IT(정보기술) 용어로, OS의 셸(shell) 등에 설정되어 있다. 변수의 이름과 의미는 미리 정해져 있기 때문에 환경변수를 읽으면 시스템의 설정을 어느 정도 알 수 있다. OS의 환경변수는 시스템의 실행파일이 놓여 있는 디렉토리의 지정 등 OS 상에서 동작하는 응용소프트웨어가 참조하기 위한 설정이 기록된다. 응용소프트웨어로부터는 시스템 콜(system call:프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영체계의 루틴을 호출하여 이용하는 것)이..
자바에는 문자열을 처리하기 위한 클래스로 String, StringBuilder, StringBuffer 클래스가 있다. 단순히 문자열을 처리하기 위함이라면 (예를 들면 System.out.println("문자열"); 이런 경우) 어떤 것을 사용해도 별다른 차이는 없다고 알고 있다. 하지만 문자열을 더하는 (+) 연산을 할 경우에 퍼포먼스상의 차이가 발생한다. 백번 듣느니 한 번 보는게 낫다. 실제로 아래와 같은 예제는 많은 곳에서 흔히 볼 수 있는 예제일 것이다. package xxxelppa.tistory.com; public class StringTest { public static void main(String[] ar) { long StartTime = 0; long EndTime = 0; St..
정규표현식 자체만으로도 정말 많은 이야기를 할 수 있지만. 기본적인 정규표현식의 개념과 언제 사용하면 좋은지에 대해서는 어느정도 알고 있다고 가정한다. (나중에 기회가 된다면 정규표현식에 대해서 정리를 할 계획인다.) 자바에서 정규표현식을 사용하기 위해서는 두 개의 라이브러리를 import해야 한다. import java.util.regexp.Matcher; import java.util.regexp.Pattern; 바로 util package에 있는 클래스 이다. 두 개의 클래스를 import 했다면, 다음처럼 작성해보자. // 비밀번호 유효성 검사식1 : 숫자, 특수문자가 포함되어야 한다. String regExp_symbol = "([0-9].*[!,@,#,^,&,*,(,)])|([!,@,#,^,&..