목록분류 전체보기 (33)
pat coding
디자인 패턴이란? - 반복적으로 일어나는 문제들을 어떻게 해결할 것인가에 대한 해결책들의 유사점을 모아놓은 패턴 - 프로젝트 규모가 커지고 협업 인원이 많아질수록 디자인 패턴은 일을 효율적으로 처리할 수 있게 해 줌 - 이미 만들어진 해결책이 있는데, 해결책을 다시 만들지 말아야 함! GoF의 디자인 패턴 1. 생성 패턴 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공 Singleton - 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴 Abstract Factory - 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 ..
BASE64란? BASE64는 8비트 바이너리 데이터를 텍스트로 변경하는 인코딩 방식 중 하나로 ASCII 영역의 문자들로만 이루어진 문자열로 바꾸는 것입니다. 어떤 문자와 기호를 쓰느냐에 따라 다양하게 구성될 수 있지만, 잘 알려진 것은 모두 처음 62개는 A-Z, a-z, 0-9 를 사용하고 있으며 마지막 두 개를 어떤 기호를 쓰느냐의 차이만 있습니다. 64진법으로 데이터를 6bit 단위로 표현한 것 입니다. 사용 이유? 신뢰할 수 없는 통신 채널을 통해 바이너리 데이터를 안전하게 전송할 수 있기 때문 BASE64는 HTML 또는 Email과 같이 문자를 위한 Media에 Binary Data를 포함해야 될 필요가 있을 때, 포함된 Binary Data가 시스템 독립적으로 동일하게 전송 또는 저장되는..
조건문이란? 조건이 참인지 거짓인지에 따라 달라지는 계산이나 상황을 수행 Oracle 1. Decode - 비교연산이 불가함 부서번호가 10이면 ACCOUNTING, 20이면 RESEARCH, 30이면 SALES 나머지는 OPERATIONS를 출력하는 예제 SELECT deptno, DECODE(deptno, 10 , 'ACCOUNTING' , 20 , 'RESEARCH' , 30 , 'SALES', 'OPERATIONS') name FROM dept; DEPTNO NAME ------ ---------- 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS DECODE 함수로 직급에 따라 급여를 인상하도록 하시오. --직급이 ‘ANALIST”인 사원은 200, ‘SAL..
1. 스프링 프레임워크란? 자바 웹 애플리케이션 개발을 위한 오픈소스 프레임워크 2. 특징? 1. 의존성 주입(DI) - IOC Container 가 개발자 대신 xml 파일에 정의된 대로 Bean 객체를 생성하고 의존성을 대신 주입하는 것 2. 제어 역행(IOC) -서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법 -사용자가 작성한 메타데이터(xml 또는 @(어노테이션))에 따라 Bean 클래스를 생성 및 관리 하는 Spring의 핵심 컴포넌트 1. XML 파일 기술 - 코드와 의존성 주입하는 부분 분리해서 유지보수성을 높일 수 있다. - 시스템이 거대해지면 XML파일이 너무 많아서 오히려 유지보수가 어려워짐 2. @(어노테이션) 사용 - 직관적인 코드 작성 가능, 개..
# 예외 발생시키기 raise "error!" raise StandardError, "error!" # 예외처리 begin # 예외가 발생할 가능성이 있는 구문 file = File.open('text.txt') rescue => e # 발생한 예외를 보완 처리 # 예외 객체를 변수 e에 대입 puts "Error #{e.class}!" else # 예외가 발생하지 않은 경우 실행되는 처리 ensure # 예외 유무에 상관없이 실행시킬 구문 file.close if file end begin으로 시작하는 코드 덩어리는 예외사항이 발생할 때 까지 실행되며, 예외가 발생하면 컨트롤이 에러 처리 코드쪽으로 넘어가게 됩니다. 이 에러 처리 코드는 rescue로 표시됩니다. 만약 아무 예외사항도 발생하지 않는다면..
자주사용하는 메소드정리! 1. scan - 문자열을 나눠서 배열로 저장 a = "cruel world" a.scan(/\w+/) #=> ["cruel", "world"] a.scan(/.../) #=> ["cru", "el ", "wor"] a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]] a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]] 2. valid? - 오류를 확인하는 메소드 my_person = Person.create(params[:person]) my_person.valid? # => true my_person.errors.add('login', 'can not be empty') if my_person.login..