본문 바로가기

분류 전체보기

(433)
기계독해 MRC(Machine Reading Comprehension) 기계독해(MRC)란? 기계독해(MRC)는 인공지능(AI) 알고리즘이 스스로 문제를 분석하고 질문에 최적화된 답안을 찾아내는 기술을 말합니다. 사람이 텍스트를 읽고 질문 답변을 추론하듯이 AI가 문장 속에서 의미를 찾고 답변할 수 있습니다. 추론은 불가능하지만 사람이 관련 정보를 찾기 위해 정보를 일일이 확인하지 않아도 답을 찾아낼 수 있습니다. 단순한 과거의 기계독해로부터 AI로 발전되기 까지 과거 기계독해는 알고리즘을 일일이 컴퓨터에 주입하는 방식으로 이뤄졌습니다. 우리는 무의식적으로 익숙해지고 변화되어가는 사고방식을 지녔지만 기계는 그렇지 않았습니다. 우리가 익숙해지는 패턴을 그대로 기계에 명령을 내리고 주입을 해야만 했습니다. 이러한 과정 자체가 많은 비용을 나아냈고 효율성에 대한 회의로 이어지게 ..
STT(Speech-to-Text) STT 사람이 말하는 음성 언어를 컴퓨터가 해석해 그 내용을 문자 데이터로 전환하는 처리 STT(Speech-to-Text), Voice Recognition 또는 인공 청각이라고도 표현합니다. 뜻 그대로 사람의 음성 인터페이스를 통해 텍스트(문자) 데이터를 추출해내는 것이죠. 현재는 다양한 플랫폼과 서비스들에 상용화되어 있기에 보다 쉽게 접할 수 있는 기술입니다. 그렇지만 STT 기술은 어느 날 갑자기 툭 하고 나타난 것이 아니며, 음성인식의 역사는 1950년대까지 거슬러 올라가야 합니다. 미국에서는 사람이 말하는 모습을 X레이로 촬영하고 목소리의 구조를 조사하는 연구가 활발히 진행되었습니다. 소리를 낼 때의 변화를 확인 하고 그것을 수학적으로 기술하고자 한 것입니다. 여기서 나온 수식 모델에 소리를 ..
형상관리 툴 SVN(SubVersioN), Git과의 차이점 형상관리(Software Configuration Management) 형상 관리는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기한다. 즉, 하나의 소프트웨어 산출물(binary)을 생성하기 위해 필요로 하는 아이템들과 공정 방식의 정의, 그리고 재생성을 위한 전반적인 환경까지 베이스라인(baseline)화하여 관리하는 방식 전체를 의미하며 이를 체계화한 사항을 형상 관리 시스템으로 정의하고 있다. SVN(SubVersioN) SVN은 형상관리 툴의 일종으로, 2000년도에 커밋 오류 시 롤백 불가 등의 문제를 앓고 있던 CVS를 대체하기 위해 만들어졌으며 현재까지 두루 사..
Django 유저 Accounts 비밀번호 재설정 유저들이 비밀번호를 잊어버렸을 때 처리할 수 있는 다양한 방법 중에 일반적으로 재설정 이메일을 많이 활용한다. 그래서 User 모델에 email을 저장해두고 서버에 해당 이메일이 있을 경우 재설정 이메일을 발송하여 token 검사 후 실제 재설정이 가능하도록 구현하였다. 먼저 User 모델에 Email도 함께 저장한다. views.py 중 ... user = User.objects.create_user(username=request.POST['username'], email=mail_to, password=request.POST['password1']) 그리고 Accounts/views.py 에 password_reset 클래스를 작성한다. class MyPasswordResetView(PasswordR..
django crontab 장고 크론탭 웹 이든 어떠한 형태의 서버에서 주기적으로 배치 또는 실행이 필요한 작업들이 존재한다. 예를 들어, 서버에서 주기적으로 매주 월요일에 필요 없는 임시 파일들이라든지 여러 가지 파일들을 지워줄 때나 어느 정도의 시간이 지나 만료된 세션들을 종료한다든지 얼마든지 다양한 형태의 작업들이 필요로 되어진다. 이럴 때 필요한 것이 바로 크론탭이다. 크론탭은 서버 내의 특정 작업(또는 명령)을 특정 주기로 스스로 실행하도록 하는 것을 뜻한다. 당연히 Django에도 이러한 Crontab을 지원하는 모듈이 존재한다. 바로 django-crontab이다. 단, django-crontab은 리눅스 기반이기에 윈도우 환경에서는 동작되지 않는다! 먼저, 서버에서 모듈을 설치하여준다. pip install django-cron..
예외처리 # Spring 예외처리 개요 서버에서 발생된 예외를 최종 사용자에게 전달되는 것을 방지 DAO와 Service에서 발생된 예외는 Controller로 모여짐 System 예외는 Business 예외로 다시 던지는(re-throwing) 방식 사용 @ExceptionHadnler와 @ControllerAdvice를 사용하여 예외를 처리 # Spring 예외처리 특징 1) 컨트롤러 기반 부가기능을 제공하는 Advice 클래스를 작성함 XML 설정 파일에 를 이용해서 Aspect를 설정함(=어드바이스와 포인트 컷 설정) 2) 글로벌 Exception 핸들러 예외처리는 cross-cutting concern, 어플리케이션 전체에 포인트컷이 적용되어야 함 @ControllerAdvice 어노테이션을 포함한 클래..
트랜잭션과 로깅 # 스프링 트랜잭션 선언적 트랜잭션 - 스프링은 선언적 트랜잭션 방식을 사용 어노테이션을 이용한 선언적 방식 AOP를 이용한 선언적 방식 프로그래머틱한 방식(권장되지 않음) 스프링에서 트랜잭션 처리 모범 사례 선언적 방식에 의한 트랜잭션 처리 트랜잭션은 주로 서비스 메서드를 대상으로 함 # 어노테이션에 의한 트랜잭션 @root-context.xml 에 Transaction Manager를 설정 설정 트랜잭션이 필요한 클래스나 메소드에 @Transactional 어노테이션 추가 주로 서비스 클래스의 메소드에 적용 # AOP를 이용한 트랜잭션 트랜잭션 매니저 설정 트랜잭션 어드바이스 설정 AOP 설정 # SLF4J와 Logback을 이용한 로그 남기기 Java 진영에는 많은 로깅툴이 존재(commons-lo..
PointCut 표현식과 Advisor 구현 # PountCut 표현식 문법 AspectJ 포인트컷 표현식은 포인트컷 지시자를 이용하여 작성함 대표적으로 execution() 지시자를 사용해 표현 ex) execution(* hello(..)) hello라는 이름을 가진 메소드를 선정(..은 파라미터는 모든 종류를 허용) ex) execution(* hello()) hello 메서드 중 파라미터가 없는 것만 허용 ex) execution( * myspring.user.service.UserServiceImpl.*(..)) myspring.user.service.UserServiceImpl 클래스를 직접 지정하여 해당 클래스의 모든 메서드 지정 ex) execution( * myspring.user.service.*.*(..)) myspring.us..