'JK'에 해당되는 글 46건

  1. 2018.05.21 Spring 흐름
  2. 2018.04.08 DNS 터널링
  3. 2018.04.03 부모 추상 인터페이스
  4. 2018.03.27 Garbage Collector
  5. 2018.03.24 TDD와 BDD 차이점
  6. 2018.03.24 NoSQL
  7. 2018.02.05 Category Theory
  8. 2018.02.03 Spring 1
  9. 2018.01.26 헬스케어 챗봇 HealDa
  10. 2018.01.23 Google AutoML

2018. 5. 21. 12:19 개발

Spring 흐름

MemberController -> MemberService -> MemberDAO -> SqlSession -> memberMapper.xml


@Inject

MemberDAO memberDao;


MemberDAO memberDao = new MemberDAOImpl();


위의 두 코드가 같은 의미


public class MemberController {

@Inject

MemberService memberService;

}


// @ModelAttribute : 폼에서 전달된 값을 저장하는 객체

@RequestMapping("member/insert.do")

public String insert(@ModelAttribute MemberDTO dto) {

return "redirect:/member/list.do";

}


@ModelAttribute 생략가능, insert.jsp에서 폼에서 넣긴 값을 받아서 넘기는 것.


public String insert(@RequestParam String userid,

@RequestParam String passwd) {

return "redirect:/member/list.do";

}


// 이런식으로도 사용가능 하지만 @ModelAttribute가 코드의 양을 줄일수 있어


insert.do -> MemberController -> MemberService -> MemberServiceImpl 

-> MemberDAO -> MemberDAOImpl -> memberMapper.xml


service는 계좌이체, 상품구매, 결제 등 제공되는 서비스의 단위


@Transactional

void method(){

memberDao.insertMember(dto);

memberDao.deleteMemberMember(dto.getUserid());

}

// 이렇게 되면 deleteMemberMember하다가 오류가 뜨면 전체가 rollback


<td><a href="${path}/member/view.do?userid=${row.userid}">${row.name}</a></td>


<input name="userid" value="${dto.userid}" readonly>


비밀번호 체크 sql
select count(*) from member
where userid = #{userid} and passwd = #{passwd}

컨트롤러 : @Controller, @RestController
서비스 : @Service 
모델(dao) : @Repository

dto -> json opensource lib
https://www.lesstif.com/pages/viewpage.action?pageId=24445183

servlet-conn
<resources location="/WEB-INF/views/include" mapping="/include/**"></resources>
<resources location="/WEB-INF/views/images" mapping="/images/**"></resources>

base-package = "com.example.spring02"
com.example.spring02 패키지 포함
base-package = "com.example.spring02.*"
com.example.spring02 패키지 제외

com.example.spring02.HomeController.java
com.example.spring02.memo.HomeController.java


<td><fmt:formatDate value="${row.post_date}" pattern="yyyy-MM-dd HH:mm:ss"/></td>


restful 주소 처리시
@RequestMapping("view/{idx}")
public ModelAndView view(@PathVariable int idx, ModelAndView mav) {
mav.setViewName("memo/view");
mav.addObject("dto", memoService.memo_view(idx));
return mav;
}



public interface MemoService {

public List<MemoDTO> list();

public void insert(MemoDTO dto);

public MemoDTO memo_view(int idx);

public void update(MemoDTO dto);

public void delete(int idx);

}

'개발' 카테고리의 다른 글

MemberDTO  (0) 2018.05.21
spring 파일 업로드  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
Garbage Collector  (0) 2018.03.27
TDD와 BDD 차이점  (0) 2018.03.24
Posted by 커다란꼬꼬마

2018. 4. 8. 00:11 일상

DNS 터널링

DNS 터널링

http://blog.alyac.co.kr/1291


Elastic meetup 세미나 영상

https://www.youtube.com/watch?v=1TiSz0ot_hI


간단하게 웹에 dns를 하려면 사용자가 들어올수있는 포트를 1개는 열어놔야하는데 해커가 이 포트를 활용해서 server로 침입하여 데이터나 cmd 명령어를 통해 나쁜 짓을 하는 것. 

'일상' 카테고리의 다른 글

Funnel Analysis : basic  (0) 2019.01.25
Category Theory  (0) 2018.02.05
Google AutoML  (0) 2018.01.23
데이터 연결_DMP의 중요성  (0) 2018.01.08
빅데이터 가상화  (0) 2018.01.08
Posted by 커다란꼬꼬마

 부모

추상 

인터페이스 

모든걸 물려받고 그대로 사용

* Private 제외 

new 선언X 클래스

일반 메소드 사용

추상 메소드 선언 -> 자식에서 반드시 구현

모든 변수는 상수다.(따라서 대문자)

추상 메소드 만을 갖는다.

일반 메소드는 구현 할 수 없었다.


자식 클래스 -> 그대로 쓸 수 있는게 없다. (JDK 1.7) ->(JDK 1.8)에서 디폴트(일반메소드)/스태틱이 추가됨. 



인터페이스는 자바에서 Callback으로도 사용되기도 한다.


Callback

  - Ajax

  - 프로그래밍에서 콜백(callback)은 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.


콜백 패턴

  - 호출자가 피호출자를 부르는 것이 아니라 피호출자가 호출자를 부름.


function1(fun2()) {

  

}

// function1 이 호출자, fun2가 피호출자.



'개발' 카테고리의 다른 글

spring 파일 업로드  (0) 2018.05.21
Spring 흐름  (0) 2018.05.21
Garbage Collector  (0) 2018.03.27
TDD와 BDD 차이점  (0) 2018.03.24
NoSQL  (0) 2018.03.24
Posted by 커다란꼬꼬마

2018. 3. 27. 09:15 개발

Garbage Collector

Garbage Collector


http://d2.naver.com/helloworld/1329


http://wanzargen.tistory.com/15


http://12bme.tistory.com/57


Java - SE - 기본, 요즘은 SE로 가고 있다. 

- EE - 기업, 서블릿 lib 포함, -> Sun에서 지원 중단, 아파치 쪽에서 가져갈 듯.


JDK  - JVM + lib + 컴파일러(개발환경) -> 개발자들이 주로 사용.

     - 서버사이드에는 JDK를 깔지 않는다.(exe파일로 인한 해커들의 공격떄문에) 왜?


JRE  - JVM + lib  -> 실행환경


xx.java -> (use javac) -> class -> java -> jvm -> 윈도우, 리눅스


JVM 구조

  - 클래스, 메소드, static 영역 -> 메타데이터

  - 스택 -> 실행되는 메소드

  - 힙 -> 인스턴스


OOM -> out of memory -> XML 옵션의 줘서 설정가능.



GC - 대체적으로 잘 작동하지는 않아.

영역1 - Eden, Survivor 1, 2

영역2 - OLD

영역3 - PEM


처음에 무조건 Eden으로 올린다. -> 사이즈가 풀이 나면 에덴의 것을 Survivor 1 으로 옮기고 에덴을 비워줌.

Survivor 1이 차면 2로 옮기고 비워줌. -> 똑같이, 차면 OLD.

OLD가 차면 Major GC 가 작동(분단위, 시스템 프로세스가 정지되는 문제.), 앞쪽에서는 마이너 GC가 작동.


OLD를 너무 크게작으면 멈추고 넘기는 시간이 오래걸리는 JVM의 문제.

'개발' 카테고리의 다른 글

Spring 흐름  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
TDD와 BDD 차이점  (0) 2018.03.24
NoSQL  (0) 2018.03.24
Spring 1  (0) 2018.02.03
Posted by 커다란꼬꼬마

2018. 3. 24. 11:31 개발

TDD와 BDD 차이점

http://blog.aliencube.org/ko/2014/04/02/differences-between-bdd-and-tdd/


https://medium.com/@sryu99/%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-tdd-bdd%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-3d25fab5ccb2

'개발' 카테고리의 다른 글

부모 추상 인터페이스  (0) 2018.04.03
Garbage Collector  (0) 2018.03.27
NoSQL  (0) 2018.03.24
Spring 1  (0) 2018.02.03
Java9과 Spring5 로 바라보는 Java의 변화와 도전  (0) 2018.01.17
Posted by 커다란꼬꼬마

2018. 3. 24. 10:37 개발

NoSQL

NoSQL(Not only SQL)

  - 관계형 데이터 모델과 SQL 문을 사용하지 않는 db 시스템 혹은 데이터 저장소. 기존 RDBMS가 분산환경에 적합하지 않기 때문에 이를 극복하기 위해 고안됨. row 단위가 아닌 집합형태로 저장됨. 또한, Sharding(샤딩)이라는 기능이 있어서 데이터를 여러 서버에 분산하여 저장함. 기존 RDBMS처럼 완벽한 데이터 무결성을 제공하지는 않음. 기업의 핵심 데이터는 RDBMS를 이용하고 핵심은 아니지만 데이터를 보관하고 처리해야하는 경우 Nosql이용.

  MongoDB, HBase 등 다양한 솔루션이 있음.

'개발' 카테고리의 다른 글

Garbage Collector  (0) 2018.03.27
TDD와 BDD 차이점  (0) 2018.03.24
Spring 1  (0) 2018.02.03
Java9과 Spring5 로 바라보는 Java의 변화와 도전  (0) 2018.01.17
Hypothesis test  (0) 2018.01.06
Posted by 커다란꼬꼬마

2018. 2. 5. 13:22 일상

Category Theory

Category Theory Youtube 강의

'일상' 카테고리의 다른 글

Funnel Analysis : basic  (0) 2019.01.25
DNS 터널링  (0) 2018.04.08
Google AutoML  (0) 2018.01.23
데이터 연결_DMP의 중요성  (0) 2018.01.08
빅데이터 가상화  (0) 2018.01.08
Posted by 커다란꼬꼬마

2018. 2. 3. 23:14 개발

Spring 1

스프링의 주요 특징

  - POJO(Plain Old Java Object) 기반의 구성 : 별도의 API가 필요하지 않은 일반적인 자바 코드를 이용하여 개발 가능

  - 의존성 주입(DI)을 통한 객체간의 관계 구성

  - AOP(Aspect Oriented Programming) 지원 : 반복적인 코드를 줄이고 개발자가 비즈니스 로직에만 집중할 수 있도록 지원함.

  - 편리한 MVC 구조

  - WAS에 종속적이지 않은 개발 환경


1. IoC(Inversion of Control, 제어의 역전) - 객체에 대한 제어권

  - 기존에는 개발자에게 제어권이 있었음(new 연산자)

  - 객체의 제어권을 스프링에게 넘김

  - 인스턴스의 라이프 사이클(생성~소멸)을 개발자가 아닌 스프링 프레임웍이 담당


2. DI(Dependency Injection, 의존관계 주입)

  - 객체 간의 의존성을 개발자가 설정하는 것이 아닌 스프링 컨테이너가 주입시켜주는 기능

  - 객체를 쉽게 확장하고 재사용할 수 있음

  

'개발' 카테고리의 다른 글

TDD와 BDD 차이점  (0) 2018.03.24
NoSQL  (0) 2018.03.24
Java9과 Spring5 로 바라보는 Java의 변화와 도전  (0) 2018.01.17
Hypothesis test  (0) 2018.01.06
PriorityQueue(Java)  (0) 2018.01.05
Posted by 커다란꼬꼬마



헬스케어 챗봇 HealDa


헬스케어챗봇의 HealDa 라는 어플을 우연히 알게 되었다.

공식 사이트는 아직 없지만, Youtube의 공식 채널이 있었다.


HealDa 소개 영상


헬스케어와 관련해서는 헬스케어와 클라우드의 만남의 책을 읽으면서 헬스케어쪽 양질의 데이터를 구하기가 어렵고 법적인 부분이 아직 기술을 따라오지 못해서 어려움이 많다는 정보는 대략 알고 있었다.


또한, 챗봇 관련해서는 RNN과 Seq2Seq 모델을 이용하여 한국어 챗봇 프로젝트를 해보면서 실제 구현하기가 정말 힘들고 성능도 상당히 안 좋아서 하기가 힘들었다. 또한, 상용제품으로 되어 있는 쪽도 단순히 단어를 검색해서 보여주는 방식도 있었고 한국어의 경우에는 Clova(음성쪽이지만 음성이 Text로 바뀌고 그것이 활용되어서 챗봇과 비슷하다고 생각.)가 잘되고 발전이 많지만 아직까지는 나의 생활에 실질적인 편리함을 가져다 주지는 않았다.


하지만 HealDa의 경우에는 기사를 찾아보니 내부엔진을 사용하였고 현재에도 미국의 회사들과 싱가포르의 병원에서 실제로 서비스 중이었다. 데모 영상을 살펴보니 긴 내용도 잘 되면서 버튼 방식과 Text방식을 잘 섞어서 UI가 편리하였다. 또한, CEO분이 말했다시피 현재 한국에서 서비스중인 서비스들은 1~2분을 사용하기 위한 서비스가 많은데 데모영상에서 보면 7분 영상이지만 계속 원활한 대화가 이루어진다는 것을 보고 내부엔진과 알고리즘이 궁금해졌다.


기사를 보니 헬스케어를 시작으로 다른 산업으로도 확장을 계획하고 있다는데 앞으로도 잘 지켜봐야겠다.




출처

http://www.zdnet.co.kr/news/news_view.asp?artice_id=20170522143600

https://www.rocketpunch.com/companies/healthcarechatbot

http://m.chosun.com/svc/article.html?sname=biz&contid=2017110902169

http://techholic.co.kr/archives/64474

https://www.facebook.com/YoonSupChoi.Healthcare.Innovation/posts/675396685955466

http://www.medigatenews.com/news/2175810392

Posted by 커다란꼬꼬마

2018. 1. 23. 06:21 일상

Google AutoML

구글에서 AutoML이라는 것이 나왔다고 한다.

기존에는 모델을 구성하고 파라미터를 튜닝하고 성능에 따라서 다시 모델을 구성하고 파라미터를 튜닝하고 raw 데이터를 확인하고 다시 일련의 과정들을 반복했었다.


이에 따라서, TF, PyTorch, Keras 등 여러 프레임워크들이 장단점을 가졌다.

하지만, AutoML이 아직은 이미지 Classification 쪽에 유리하다고 하지만, 예전에 머신러닝 관련 스타트업 중 데모데이에서 발표를 보았던 것 처럼 데이터만 뿌리면 알아서 모델과 파라미터 튜닝까지 가능하고 실제로 논문의 경우에는 일반적인 ML 연구자보다 성능이 더 좋게 나왔다고 한다. 그렇게 되면 그런 스타트업은 망하게 될것같다.


또한 기사에서 보듯이 진화 전략 방식으로 아직 연구가 많이되지 않다고는 들었지만, 구글이 열심히하고 다른 기업들이 열심히하는 만큼 기존의 모델레이어 바깥에서 모델자체를 학습하고 최적의 모델을 맞춰 그에맞는 파라미터를 맞추는 쪽으로 갈수도 있을것 같다.


지금의 기술과 소프트웨어가 빠르게 발전하는 만큼 지금 좋다고해서 영원한 기술은 없고 항상 변하는 것을 피부로 와 닿았다.


호모아카데미쿠스 라는 단어처럼 학습하는 인간이 나중에는 살아남는 것 같다. 

학습능력을 키워서 학습하자.


출처

https://cloud.google.com/automl/

'일상' 카테고리의 다른 글

Funnel Analysis : basic  (0) 2019.01.25
DNS 터널링  (0) 2018.04.08
Category Theory  (0) 2018.02.05
데이터 연결_DMP의 중요성  (0) 2018.01.08
빅데이터 가상화  (0) 2018.01.08
Posted by 커다란꼬꼬마
이전버튼 1 2 3 4 5 이전버튼

블로그 이미지
커다란꼬꼬마

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함