반응형

http://mod.lge.com/prosys
GET http://mod.lge.com/prosys/config/server/info

  • Accept:application/json
  • Accept-Encoding:gzip, deflate
  • Accept-Language:ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
  • Connection:keep-alive
  • Cookie:GerritAccount=aHKuc2qtT1cOJKI46KHisOtAiVSQDpe; __utmz=106432414.1574130432.15.2.utmcsr=collab.lge.com|utmccn=(referral)|utmcmd=referral|utmcct=/main/pages/viewpage.action; crowd.token_key=Zky4bYQkNHV1FnFBhpopcw00; __utmc=106432414; __utma=106432414.1771813227.1573520850.1578534063.1578536233.101; login_success=T; ssolgenet=id=p2admin0&pw=&empno=p123450&ssoid=p2admin0; SMSESSION=3vzel/uOpFxFMMSv2AockUvCBkr2z5dJGDk9DKBhZ1ofcI94JsmYWMI7wng0eGC9Qq5FW1qoa0plYjvr3WzPga8dnoptmSnwRbYHvuRMWwp911iwOCsV14vmqdYrXO0MISbkH4lw+OCGyX1HFkR74cQw+GsHvDBcZ9CwY/VGlGx3X0hdpyeFLQCg4taTOjtuzz4hlEsueSzbNhB/pTVZc5UN5yiMD0RVWaLmwOGxX0h+l1YkaymaW5sf9nGGeflKu2BVbdovktLxp4EmG/rQ4k1cOfjrAXtrCpaAir0naE/F1urOkvErBsFZONUf+cy+7n3oeHUI71qCU8E++T5gjj2wNqYLcsI/npf9HjN9CWziPIlZxvKKMqI9PE9ekvO2rNZDmQtlPVDie7doO/Wk8aQXPn35FiWAbXlCJlVILWEojwZyPSp1EABoNrpeG50K0Qc8XkiUBOVSDGWdGdPGG+etAAFMMQAmJltuqdhnYGyti03vhwDMPR/QJlKhC2UEaq98ddxSmFJso8RRDtCIOI7X4tjlr8+j37uVKz9GjT/Ysq5nWyz60fMpO+Ru81ft4rKeZ+hk5K73EeCCeSv0HQTQcZ4Dk+kxDM5H53uKDAj8j4JHOBeayHSyFBx77x70i0W9/Zr89XqFlxKRMOLbn/criphfsvYCfY4uvMSdzhVAUPNM9y8DH/wtIReNNZusdbt6YWMojjA8Qem9gfWZHkiWdJpdAuyXmRVPmhgtU2DrSUQHofhcU3YC8vAvSM4VdmdgnPxkGseJskiSGyoQYXpnrTp4gd3OX0kYVqkDSA7T8f6J5LgMFbUFUwBvDhNAl6yaO4z36Qz+EClhDjRgS8lAywlcFKRVzP6Ge1taD2wvU+EFYBL8XkcVgqdjvr5Y9oxrIv+hslCg9EC9mT8YIfiAKKnfzf4xnHBAk8xX8ZmHfLz/fSaxXLz7XrNvKWRx25XsrtBZRv98L4oJzzoOAARlnikgQ/ClGF4sWyuDm5M2B8dEv99WLwz25IglSBjr5IJiko88p44S2+IGoGB0OusnMWlV0NNPIU2CETmlhDAIo/PltZ6nnXBlM9u1hF+F4E4HxSUFD9rYaJU1aepxnkv8sQBSzf/dTUGT8ZN2sBzzvUgl/9Kr3/CJ+t7bvzq7; __utmb=106432414.5.10.1578536233; XSRF_TOKEN=aHKustHxrvq1rknkQI456dXOP7Vtzmm
  • Host:mod.lge.com
  • Referer:http://mod.lge.com/prosys/
  • User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
  • X-Gerrit-Auth:aHKustHxrvq1rknkQI456dXOP7Vtzmm
 
  •  
반응형
반응형

* Promise: http://webframeworks.kr/tutorials/translate/es6-promise-api-1/

  • async-await ()
    • await 키워드로 Promise 를 기다린다
    • 함수앞에 async 키워드를 붙여준다
    • 에러 처리는 try-catch 로 한다
    • async 함수의 반환값은 Promise 형태이다

https://velopert.com/2597

반응형

'js' 카테고리의 다른 글

page redirect 방법들  (0) 2020.04.12
ES6(2015) - import/export  (0) 2020.03.24
eslint, prettier  (0) 2020.03.18
javascript timezone  (0) 2020.03.15
frontend setting in Windows  (0) 2020.01.13
반응형
  • useState
  • useEffect
    • react component가 rendering될때마다 특정작업 수행하도록 설정
    • componentDidMount + componentDidUpdate
      • 화면에 처음 렌더링될 때만(마운트될때만) 실행: useEffect(  ()=>{실행할일}, []  );
      • 특정값이 업데이트될때만 실행: useEffect(  ()=>{실행할일}, [name]  );
  • useContext
  • useReducer
  • useMemo
    • 불필요한 연산 반복하지 않도록 연산을 최적화
    • 매번 렌더링할 때마다 연산하지 않고 특정값이 바꼈을때만 연산하도록 지정
  • useCallback
    • useMemo와 비슷
    • 함수를 반환하는 상황에서 더 편하게 사용가능
  • useRef

https://velog.io/@velopert/react-hooks

 

반응형

'react' 카테고리의 다른 글

react component: class vs function  (0) 2022.05.26
react timeline library  (0) 2020.02.24
react에서 (re)hydration(수화,수분보충)의 의미  (0) 2019.12.18
Redux Study  (0) 2019.09.27
react란  (0) 2019.09.02
반응형
  1. 리액트가 정적으로 렌더링된 (SSR 또는 pre-rendered) HTML 컨텐츠로부터 컴포넌트 트리를 재구성함
  2. 마찬가지로 정적으로 Persist된 리덕스 스토어 등을 런타임 상태로 재구성함

어감에서 할 수 있듯이 동적이였던 무언가를 정적인 상태로 저장해두었을 때, 이를 다시 원상태로 돌리는 행위를 뜻합니다.

주로 1번을 hydration, 2번을 rehydration이라고 칭하는데 (그냥 혼용함) 이 중 1번은 리액트 웹에서만 필요한 부분이라 리액트 네이티브에는 해당이 없습니다.

--------------------------------------

Plane Text 형태로 존재하는 state를 읽어들이는 행위?

 

다 이해는 못했지만 SSR(server side sendering),CSR(client side rendering), 서버에서 응답받아 웹페이지가 나오기 까지 일어나는 일련의 과정, 여기에서 hydrate는 메말랐던 정적인 내용이 수분으로 채워주며 동적으로 바뀌게 해주는 의미라는 설명 등이 잘 나타나있음

https://simsimjae.tistory.com/389

 

리액트의 hydration이란?

hydration = 수화 수화란 우리 몸에 수분을 보충하는 행위를 뜻한다. 리액트에서 왜 hydration이라는 용어를 사용하는건지는 아래 내용을 살펴보고 다시 한번 생각해보자. 리액트는 DOM에 리액트 컴포

simsimjae.tistory.com

 

반응형

'react' 카테고리의 다른 글

react component: class vs function  (0) 2022.05.26
react timeline library  (0) 2020.02.24
react hook: 16.8부터 추가  (0) 2020.01.02
Redux Study  (0) 2019.09.27
react란  (0) 2019.09.02
반응형
stash: to store or hide something, especially a large amount
git stash는 branch에 따라 달라지지 않고 전체적으로 공유됨
  • git stash (=git stash save)
  • git stash save [stash명, 기본이름-stash@{0}] : 이름 지정해서 저장하려면 git stash save를 써줘야함
  • git stash list
  • git stash apply [stash명, 기본이름-stash@{0}] : 가장 최근 stash 가져와 merge하되 다시 staged상태까지 복원하진 않음
    • but git stash apply localTemp[stash명] 실행하면 locallTemp is not a valid reference 에러나고 git stash apply stash@{0} 이렇게 해야만 정상동작함
  • git stash apply --index                              : staged상태까지 복원하려면 --index 붙어야함
  • git stash drop [stash명, 기본이름-stash@{0}] : 가장 최근 stash 제거
  • git stash clear : stash전체 다 비움
  • git stash pop                                          : git stash apply + git stash drop 인듯
  • git stash show -p | git apply -R                   : merge한 stash 되돌리기 (unapply 개념)
  • git stash --patch  : 대화형 프롬프트가 뜨며 변경된 데이터 중 저장할 것과 저장하지 않을 것 지정가능

 

반응형

'git' 카테고리의 다른 글

git commit 취소  (0) 2022.05.20
git author/committer, owner/uploader/reviewer 차이  (0) 2022.05.17
git ignore  (0) 2019.09.03
git bash shorcuts: copy(ctrl+insert), paste(shift+insert)  (0) 2019.06.11
git rebase, cherry-pick을 잘 이해해보자  (0) 2019.06.11
반응형

in application.yml

    #jwtExpirationInDay: 365 #에러남
    #jwtExpirationInSec: 365 #에러남
    #jwtExpirationInMs: 604800*1000 #=7days #에러남
    #jwtExpirationInMs:  864 00000 #=1days
    #jwtExpirationInMs: 6048 00000 #=7days
    #jwtExpirationInMs: 8640 00000 #=10days
    jwtExpirationInMs: '2147483647' #24.85day int 최대범위
    #jwtExpirationInMs: 86400 00000 #=100days #숫자가 커서 안들어감 string->int로 바뀌는듯

주기 더 늘이는 방법은??

반응형

'java, spring' 카테고리의 다른 글

Log4j  (0) 2020.02.13
ChannelGenre enum관련 에러 (patch시 No validator could be found for constraint)  (0) 2020.01.14
Spring pageation  (0) 2019.11.25
JPA ddl설정, queryDSL  (0) 2019.11.21
javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
반응형
  • (?) maxSize=67인데 이건 어디서 정해지는 건지? 아래에서 web.pageable.max-page-size: 67 요게작동하는듯

    spring:
    profiles:
        active: local
    datasource:
        jdbc-url: jdbc:mysql://localhost:3306/cdp?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
        username: root
        password: root
    jpa:
        properties:
            hibernate.dialect: org.hibernate.dialect.MySQL5InnoDBDialect
        hibernate.ddl-auto: update
    jackson:
        serialization:
            WRITE_DATES_AS_TIMESTAMPS: false
        time-zone: UTC
    servlet:
        multipart:
            enabled: true
            file-size-threshold: 2KB
            max-file-size: 50MB
            max-request-size: 75MB
    data:
        rest:
            default-page-size: 57
            defaultPageSize: 77
    
  •  
  •  
  •  
  •  
  •  
  • org.springframework.data.domain.Pageable - request parameter로 받음
  • Defaulf 값은 org.springframework.data.web.PageableDefault annotation으로 설정
    • @PageableDefault(sort = {"provider.providerId", "programId"}, direction =Direction.ASC, size =AppConstants.DEFAULT_PAGE_SIZE_INT)
    • sort는 jpa model bean의 property 명이어야 함 (payload명이 아님)
    • sorting direction의 default는 ASC
    • default size는 application.yml에서 data.rest.default-page-size: 50 이렇게 설정가능하다고 함
  • 실제 request
  • Pageable 이 실제 구현되기 위해서는 Repository에서 적용이 되어야함
    • JpaRepository를 상속받아 그 내부 method를 구현하여 사용하면 됨
    • queryDSL의 경우, 코드에 적용해줘야 함

추가적으로 page가 0부터 시작하기 보다 1부터 시작하도록 변경한다던가 하고 싶다면 PageRequest class를 만들어 사용하면 됨

참고: https://cheese10yun.github.io/spring-jpa-best-12/

반응형
반응형

spring:

    profileslocal

    jpa:

        hibernate.ddl-autocreate-drop # update

        #none : 기본 값이며 아무 일도 일어나지 않는다.

        #create-only : 데이터베이스를 새로 생성한다.

        #drop : 데이터베이스를 drop 한다.

        #create : 데이터베이스를 drop 한 후, 데이터베이스를 새로 생성한다.(기능적으로는 drop + create-only와 같다)

        #create-drop : SessionFactory가 시작될 때 스키마를 drop하고 재생성하며, SessionFactory가 종료될 때도 스키마를 drop 한다.

        #validate : 데이터베이스 스키마를 검증 한다.

        #update : 데이터베이스 스키마를 갱신 한다.


<Before - join>

@Override
  public Page<Program> findDynamicQuery(Pageable pageable, String providerId, String programName) {

    JPQLQuery<Program> query = queryFactory.selectFrom(program).distinct()
        .join(program.multiLanguageList, programMultiLanguage)
        .on(program.eq(programMultiLanguage.program))
        .where(likeProviderId(providerId), likeProgramTitle(programName))
        .offset(pageable.getOffset()).limit(pageable.getPageSize());

    PathBuilder<Program> entityPath = new PathBuilder<>(Program.class, "program");
    for (Sort.Order o : pageable.getSort()) {
      PathBuilder<Object> path = entityPath.get(o.getProperty());
      query.orderBy(new OrderSpecifier(Order.valueOf(o.getDirection().name()), path));
    }

    QueryResults<Program> results = query.fetchResults();
    return new PageImpl<>(results.getResults(), pageable, results.getTotal());
  }

  private BooleanExpression likeProgramTitle(String programTitle) {
    if ("".equals(programTitle)) {
      return null;
    }
    return programMultiLanguage.title.like("%" + programTitle + "%");
  }

<After - join안하고 더 간단히>

@SuppressWarnings("unchecked")
  @Override
  public Page<Program> findDynamicQuery2(Pageable pageable, String providerId, String programName) {

    // order by 조건이 먼저 붙어야 할 수도 있을듯, 확인해봐야함
    JPQLQuery<Program> query = queryFactory.selectFrom(program)
        .where(likeProviderId(providerId), likeProgramTitle2(programName))
        .offset(pageable.getOffset()).limit(pageable.getPageSize());

    PathBuilder<Program> entityPath = new PathBuilder<>(Program.class, "program");
    for (Sort.Order o : pageable.getSort()) {
      PathBuilder<Object> path = entityPath.get(o.getProperty());
      query.orderBy(new OrderSpecifier(Order.valueOf(o.getDirection().name()), path));
    }

    QueryResults<Program> results = query.fetchResults();
    return new PageImpl<>(results.getResults(), pageable, results.getTotal());
  }
  
  private BooleanExpression likeProgramTitle2(String programTitle) {
    if ("".equals(programTitle)) {
      return null;
    }
    return program.multiLanguageList.any().title.like("%" + programTitle + "%");
  }

 

query구하고 실행까지 하려면

select는 query.fetch(), update는 query.update() 이런식으로 가능함

 

com.lge.cdp.model.QChannel.channel를 찾을 수 없다는 에러가 뜬다면

cdp-web/.classpath파일을 열어 아래 항목을 추가하면 됩니다.

<classpathentry kind="src" path="target/generated-sources/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="ignore_optional_problems" value="true"/>
            <attribute name="m2e-apt" value="true"/>
        </attributes>
    </classpathentry>

반응형

'java, spring' 카테고리의 다른 글

Jwt Token Expire 주기 설정  (0) 2019.11.27
Spring pageation  (0) 2019.11.25
javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring error  (0) 2019.06.14
spring  (0) 2019.06.12
반응형
반응형

'java, spring' 카테고리의 다른 글

Spring pageation  (0) 2019.11.25
JPA ddl설정, queryDSL  (0) 2019.11.21
spring error  (0) 2019.06.14
spring  (0) 2019.06.12
spring security...  (0) 2019.06.11
반응형
  • Web에서도 사용가능하며 매우 편리
  • 최근 syntax 바뀐듯함
    • start로 시작해서 end로 끝나는게 옛날 syntax
    • new syntax는 start-end가 따로 없고 동일한 효과내려면 (*) 사용가능
    • VSCode Extension은 최신버젼인 v2.12.2 platUML 설치했는데도 new syntax 사용못하고 에러남
    • Web에서는 되니까 그냥 Web꺼 사용함
  • State diagram을 그리되 간단하게 상태만 나오도록 하려면
    • (Draft)-->(QA Registered): Register
    • ()를 쓰면, state명에 ' ' 삽입가능한 장점도 있다
  • 정식 State diagram에선
    • state QA_Registered { \n} (\n 필수, 꼭 한줄 띄어야 에러안남) 이렇게 선언해야함
    • 각 state에 들어가야 할 설명이 있다면 이렇게 써야함
  • 공통사항
    • 방향을 지정하고 싶으면 -[up, down, right, left]-> 4가지 방향중에 1개 지정해서 -up->일케 쓰면됨
반응형

+ Recent posts