본문 바로가기

Software Development

(14)
JAVA - FileInputStream FileReader 차이점. FileInputStream과 FileReader를 통해 파일을 애플리케이션으로 간단하게 불러올 수 있다. 차이점이 있는데.. FileInputStream은 바이트단위로 처리를 하고, FileReader는 문자단위로 처리를 한다는 점. 하는일은 거의 비슷하지만... FileInputStream은 InputStream을 상속받아 구현되고, FileReader는 InputStreamReader->Reader 클래스로부터 구현된다. 결론은. InputStream은 바이트단위의 자료처리, Reader는 문자열단위의 자료처리를 위해 만들어진 클래스들이다. fisTest.java import java.io.*; public class fisTest { public static void main(String [] a..
VHDL - 예약어, 연산자 요약 □ VHDL 예약어와 연산자 ○ 예약어 abs, access, after, alias, all, and, architecture, array, assert, attribute, begin, block, body, buffer, bus, case, component, configuration, constant, disconnect, downto, else, elseif, end, entity, exit, file, for, function, generate, generic, guarded, if, in, inout, is, label, library, linkage, loop, map, mod, nand, new, nor, not, null, of, on, open, or, others, out, pack..
VHDL - 개요와 역사 요약 □ VHDL의 역사(ref. Wikipedia VHDL) ○ 개 요 • VHDL(VHSIC Hardware Description Languae)은 디지털 회로의 설계 자동화에 사용하는 하드웨어 기술 언어이다. • VHDL는 원래 미국 국방부에서 주문형 집적회로(ASIC)의 문서화에 사용하기 위해 만든 언어였다. 즉, 복잡한 매뉴얼로 회로의 동작 내용을 설명하는 대신, 회로의 동작 내용을 문서화하여 설명하기 위해 개발했다. 그러나 이런 문서를 회로 디자인 과정에서 시뮬레이션에 사용하게 되었고, VHDL 파일을 읽어들여서 논리 합성을 한 다음 실제 회로 형태를 출력하는 기능을 덧붙이게 되었다. 오늘날에는 디지털 회로의 설계, 검증, 구현등의 모든 용도로 사용하고 있다. • VHDL은 Ada 프로그래밍 언어의..
Design Pattern(Java) - Iterator패턴 내맘대로 정리. 디자인패턴들 중 가장 대표적인 패턴인 Iterator 패턴. 클래스들의 집합을 구현한 클래스에서 순환탐색을 필요로 할 때 이터레이터를 사용하면 편리하게 접근 할 수 있게된다. 좋은점은.. 클래스가 다르더라도 항상 같은 형식으로 호출 할 수 있게 되므로, 1. 대상이 되는 클래스의 구현 방법을 노출 시키지 않으므로 지저분하지 않고 깔끔한 코딩을 할 수 있게 된다. (캡슐화) 2. 컬렉션이 되는 클래스의 구조를 모르더라도 그 안에 Iterator만 구현 되어 있고, 사용자가 Iterator 패턴에 대한 지식만 있다면 쉽게 컬렉션의 요소들을 참조 할 수 있게 된다. (다형성) 결국 궁극적으로 지향하는 점은 객체지향의 특징들인 다형성과 캡슐화를 위해서 개발된 패턴이라고 한다더라.. 아래는 Ite..
디자인 패턴의 이해 1. 디자인 패턴은 클래스 라이브러리가 아니다. 더욱 더 일반적이고 추상적인 개념이다. >> 어떤 기능이 있는지, 그것들이 어떻게 관련되어 큰 기능을 하는지 2. 클래스 라이브러리 안에 디자인 패턴이 구현되어 있다. >> 이터레이터나 컬렉션이나.. 어댑터 패턴 같은 것들 등등.. 3. 프로그램은 완성품이 아니다. >> 디자인 패턴의 목표중 하나는 프로그램의 재 이용을 가능하게 하는 것이다. >> 따라서, 프로그램은 완성품이 아니라.. 다시 쓸 수 있는 도구.. 또는 기능을 확장하는 것이다. 4. 다양한 디자인 패턴을 이해하고 이용할 수 있어야 한다. 5. UML을 배우자 --;;
리팩토링의 중요성 리팩토링 소프트웨어 공학에서 리팩토링(refactoring)은 주로 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. 자잘한 메소드들을 보기좋게 모아놓는다거나.. 복잡한 메소드를 이해하기쉽게 각 기능마다 여러 메소드들로 구현해서 모아놓는다거나.. 중복된 코드들을 하나로 묶는다거나.. 등등. 자세한 내용은 여기 .. >> 마틴 파울러의 리팩토링 * 대청 출판사에서 나온 Refactoring 번역서에서 발췌한 내용입니다. 1. 코드 속의 나쁜 냄새 1.1 중복된 코드 한 곳 이상에서 중복된 코드 구조가 나타..