반응형

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->일케 쓰면됨
반응형
반응형

* hover: 공중부양하다.

* split: divide, seperate, split 차이이해하기

javascript에서 email.split('@')로 string자르는데 씀

반응형
반응형
반응형
반응형
반응형

'db' 카테고리의 다른 글

oracle VS mysql  (0) 2020.02.26
mysql query tip  (0) 2020.01.31
mysql.*, information_schema.*  (0) 2019.09.06
daily check query (mysql & oracle)  (0) 2019.07.17
mySQL local 설치 및 실행 (on windows)  (0) 2019.02.27
반응형

Map: Array를 다른 Array로 변환

매개변수는 순서대로 currentValue[, index[, array]]인듯

매개변수 이름을 중요하지 않고 순서만 중요한듯... 헷갈리는 개념!!! 알아두자!!!

참고) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

반응형
반응형

개발순서

  1. prop로 변수와 함수를 받을 애를 먼저 개발
  2. 변수-action, 함수-reducer -> action과 reducer를 정의함
  3. store 생성
  4. container에서 connect
    • const CounterContainer = connect( mapStateToProps, mapDispatchToProps )(Counter);
    • mapStateToProps
    • mapDispatchToProps

Provider: react-redux 라이브러리에 내장되어있는, 리액트 앱에 store 를 손쉽게 연동 할 수 있도록 도와주는 컴포넌트

해당 프로젝트에서 redux, react-redux를 쓰려면 그 프로젝트 내부에서 yarn add redux react-redux 실행해서 항상 설치해줘야 함 안그럼 yarn start하면 못찾는다고 에러남

 

 

state, action이 있음 - SA

state는 action에 따라 변화함, state가 action에 따라 어떻게 변화는지를 정의한 함수가 reducer

이전 state, action -> (REDUCER) -> 바뀐 state

reducer함수는 state, action을 parameter로 받음

// 스토어를 만들 땐 createStore 에 리듀서 함수를 넣어서 호출 

  • const { createStore } = Redux;
  • const store = createStore(reducer);
  • store를 만들고나면 store.getState()로 state를 가져올수 있음
  • store.subscribe(render); //store를 구독할 때는 변화할때마다 실행된 listener(render)를 지정함
  • btnIncrement.addEventListener('click', () => { store.dispatch(increment(25)); })//action 객체를 리턴함으로 action에 따라 state가 변하게 함
  • store.dispatch -> action 리턴 -> action에 따라 state변함 -> state변화면 화면도 바뀜

 

Ducks구조

  • src/actions/ActionTypes, index.js 이렇게 분리하지 않고 src/modules/index.js안에 통합

redux-action

  • createAction: Action 객체 리턴하는 부분을 간략화
  • handleAtions: reducer함수가 switch로 사용되어 각 액션에 따른 동작을 정의하는데 제한이 있는 문제를 해결
반응형

'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
react에서 (re)hydration(수화,수분보충)의 의미  (0) 2019.12.18
react란  (0) 2019.09.02
반응형

use mysql; or use information_schema; 실행후에는 매번 mysql./information_schema.안붙여도됨

  • user account
    • select * from mysql.user;
      • 여기에 insert하는 것과 create user하는 것이 동일한 효과인듯 (create user하면 insert되어 있음)
  • 권한
    • select * from mysql.db; schema/host/user별 권한확인가능
      • 여기에 insert하는 것과 grant () on () to () 하는 것과는 다른듯ㅠ
      • grant ()가 막혀있고 실행되지 않아 insert해보니 insert는 되지만 실제 권한은 못받음
      • show grants (for current user) 명령어로 현재 user에게 허용된  grant문 전체를 볼수는 있음
    • select * from information_schema.USER_PRIVILEGES;
      • 위의 mysql.db와 동일한데 각 권한을 row별로 나열로해 놓은듯?
  • Table
    • select * from infomation_schema.tables -> information_schema의 테이블뿐 아니라 모든 테이블 확인가능
    • show tables; -> 현재 schema에 있는 테이블 목록만 보여줌
  • Event
    • event scheduler 활성화
      • 활성화 확인: show variables like 'event%';  -> ON이면 활성화된것
      • 활성화시키는법: set global event_scheduler=ON; / set @@global.event_scheduler=ON;
    • read
      • 생성된 event확인: select * from information_schema.EVENTS; / show EVENTS;
        • e.g) select * from information_schema.events where event_name='EV_SP_IB_CONF_FILE'
      • 등록된 event내용확인: show create event '이벤트명'; -> ?안됨
    • update
      • alter event '이벤트명' on schedule every 1 month starts '2014-05-27 01:00:00';
    • delete
      • drop event '이벤트명';
반응형

'db' 카테고리의 다른 글

oracle VS mysql  (0) 2020.02.26
mysql query tip  (0) 2020.01.31
H2 DB 사용방법  (0) 2019.10.30
daily check query (mysql & oracle)  (0) 2019.07.17
mySQL local 설치 및 실행 (on windows)  (0) 2019.02.27
반응형
반응형
반응형
  • 페이스북에서 사용자 경험을 향상하기 위해 만든 라이브러리
  • 프레임워크가 아님 -> 사용자 인터페이스 라이브러리
    • framework과 library의 차이는? 프레임웤이라고 할 정도면 프로그램의 흐름의 주도권이 프레임웤에 있어서 기본 구조가 모두 구성되어 있고 개발자는 필요한 기능 구현에만 초점을 맞출 수 있도록 하는 수준이 되는 것...? 일반적으로 프레임웤>라이브러리 로 규모가 더 큰 걸 의미함, 근데 어디까지는 프레임웤이고 그 아래는 라이브러리다라고 무자르듯 구분하기 쉽지 않음
  • HTTP 클라이언트, 라우터, 심화적 상태 관리 등의 기능들은 내장되어있지 않음 -> view단에 집중
    • 라우터: React-router, Next.js, After.js
    • 상태관리: Redux, MobX, fr(e)actal 
  • virtual DOM을 사용한 성능향상 (Vue, Marko, Maquette, Mithril도 virtual DOM사용)
    • virtual DOM에 대한 자세한 설명 https://velopert.com/3236
    • 브라우저와 렌더링 엔진(크롬, 사파리는 웹킷, 파이어폭스는 게코라는 렌더링 엔진 사용)에 대해 좀 알아야 깊이 이해할 수 있음, 나중에 더 공부하는 걸로...
  • 단방향 데이터 바인딩
  • component를 사용한 생산성 증가 -> JSX 문법 사용

 

 

안녕, 리액트(Hello, React)

자바스크립트 라이브러리인 React.js 를 처음 시작하는 분들을 위한 내용이며, 간략한 소개와 사용 사례 및 학습 할 수 있는 사이트를 알려 드립니다. 깊이 있는 정보는 이미 많은 자료가 있어서 참고할 수 있는 사이트 공유 정도로 생각하시면 될거 같습니다.

blog.gaerae.com

 

 

React 렌더링과 성능 알아보기 : NHN Cloud Meetup

React 렌더링과 성능 알아보기

meetup.toast.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
react에서 (re)hydration(수화,수분보충)의 의미  (0) 2019.12.18
Redux Study  (0) 2019.09.27
반응형
반응형
반응형
시작라인 click -> shift + alt + 끝라인 시작점 click 다중 cursor
ctrl + shift + p
ctrl + ~
show command-line input
show terminal window
ctrl + x
ctrl + shift + k

 
ctrl + k, ctrl + s
1줄 혹은 선택영역 삭제 & 복사  
1줄 혹은 선택영역 삭제 

 
Keyboard Shortcuts 
ctrl + /
shift + alt + a
Toggle Line Comment  (//)  
Toggle Block Comment (/**/)  
alt + <
alt + >
alt + ^ 
alt + V
소스뒤로가기  
소스앞으로가기  
한줄 혹은 선택영역 위로 이동  
한줄 혹은 선택영역 아래로 이동
ctrl + shift + f 
ctrl + k, ctrl + d 
ctrl + g + #
Find in Files 
Move Last Selection to Next Find Match (=ctrl + k in Eclipse)
#행으로 이동 
Alt + Shift + O for Windows
option+Shift+O for Mac
remove unused imports
ctrl + . → 방향키로 원하는 import로 이동후 Enter add import
ctrl + (+)
ctrl + (-)
Zoom in 화면 확대 
Zoom out 화면 축소 
    • exclude: 화면 혹은 검색결과에서 원치않는 파일 안나오도록

    "files.exclude": {

        "**/yarn.lock"true,

        "**/package-lock.json"true,

    },

    "search.exclude": {

        "**/node_modules"true,

        "**/yarn.lock"true,

    },

  • Zoom in/out
    • "window.zoomLevel": 0 -> 0이 기본, 늘일수록 커짐, 10이면 너무커서난리남
    • "editor.mouseWeelZoom": true, mouseWeel로 조정가능한데 사이드바 메뉴 외에 딱 에디터화면만 조절됨
  • Coding convention
    • ctrl + shift + p > Preferences: Open Settings (JSON) 입력후 아래내용 추가하고 저장
 "[java]": {
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
        "editor.formatOnSave": true
    },
    "java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml",
    "java.format.settings.profile": "GoogleStyle"
  • Terminal Clear하는 방법: ctrl+shift+p > Terminal: Clear 입력
  • ctrl+shift+p > Markdown: open preview
  • 여러 종류의 terminal shell 이용
  • 추천 Extension
    • gitLens: 누가 언제 이 파일 수정했는지 알려주고 별도 사이드바 창에서 각종 상태 쉽게 알수 있음
    • gitHistory: history 쉽게 보여준다는데 실행해도 반응없었음, 해결안되서 못씀

 

 

PC cleansing 후 이상현상 trouble shooting

  • Cloud 환경 사용을 위해 PC cleansing 한후 vsCode를 D drive에 설치하니 lombok에러 나고 뭔가 vsCode동작이 이상했음
  • ctrl + shift + p > Preferences: Open Settings (JSON) 를 했을 때 기존 setting json 내용도 없었음
  • vsCode 설치파일 재실행하니 해결되었음

2019/10/07 java build가 안되며 java dependenccies도 나오지 않고 작동이 안됨, Problems에도 내용안뜸

  • 껐다 키면 sorry something went wrong activating intellicode support for java 에러박스 나옴
  • vs intellicode, java extension pack등 java관련 extension 다 uninstall했다 reinstall해도 해결되지 않음
  • 결국 vsCode 1.38.1로 업데이트하니 해결됨
  • queryDSL 관련 auto-generated source도 인식안되어 확인해보니 .classpath에 추가한 부분이 지워져있음
  • .classpath에 다시 추가하여 결국 다 해결함. 힘들다;;;

2019/10/14 window login에러로 포맷후 vsCode 재설치후 lombok인식안되고 get/set 인식안됨으로 인한 대규모 에러

반응형

'tips' 카테고리의 다른 글

[vsCode] java실행시 vmArgs 옵션추가방법 - launch.json에 추가  (0) 2022.06.16
[Windows]유무선 인터넷 우선순위 지정  (0) 2020.01.31
PlantUML  (0) 2019.11.08
Special Characters  (0) 2019.11.01
Shortcuts (eclipse, excel, windows)  (0) 2019.03.08
반응형

http.csrf().disable();
logging:
    level:
        root: INFO
        com.lge.cdp: DEBUG
        #org.hibernate:
          #SQL: DEBUG
          #type.descriptor.sql.BasicBinder: TRACE

-pageSize -> size
-pageNumber -> page
-POST시 []로 수정
-CUD 응답형식 다른거 참고
* AWS 키신청한것 접속해보기
* column 순서조정할 방법 생각해보자
* boolean은 bit(1)로 변환됨, 그런데 이게 default 0인지 아니면 실제 0인지 알수가 없음
* useFlag,captionFlag 등 boolean 기본값 0들어가고 있음
* varchar 길이조정 - 기존에는 varchar(1)? char(1) char(1)
* java long,int에는 null이 못들어감 
* @Column(updatable = false): mysql update가능함 무슨의미가 있음?
* mySQL char, varchar, bit, int에는 null가능? 가능함 
* mySQL char에 ''가능? 가능함 
* mySQL char에 더 적은 스트링도 들어감, 다만 공간을 그만큼 쓰는듯 
* mySQL bit, int에 ''가능? 가능함 근데 1 warning(s): 1366 Incorrect integer value ''이 0으로 들어감  

JPA Foreign key is update with null after
https://stackoverflow.com/questions/43806173/spring-data-rest-foreign-key-is-update-with-null-after-post-call-in-one-to-man
https://stackoverflow.com/questions/22591684/hibernate-many-to-one-updating-foreign-key-to-null

https://stackoverflow.com/questions/40353605/hibernate-cant-delete-entity-with-foreign-key-foreign-key-gets-set-to-null

https://minwan1.github.io/2018/12/21/2018-12-26-jpa-%EA%B4%80%EA%B3%84%EC%84%A4%EC%A0%95/

https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#Object-oriented_programming

https://okky.kr/article/335497 JPA-Hibernate 에서 복잡한 쿼리를 조회 할 경우 어떤식으로 하시는지...
http://blog.eomdev.com/java/2016/01/13/jpa_05_relationshipMappingBasic.html
https://docs.oracle.com/javase/tutorial/datetime/iso/overview.html

https://www.mkyong.com/java/how-to-loop-arraylist-in-java/

hibernate ddl 설정
https://github.com/HomoEfficio/dev-tips/blob/master/hibernate.hbm2ddl.auto%20%EC%9C%84%ED%97%98%20%ED%97%B7%EC%A7%80.md
http://egloos.zum.com/gyumee/v/2483659

반응형
반응형

리눅스 PC에 백업하실 분들은

 

sudo apt-get install vsftpd

sudo vi /etc/vsftpd.conf

 

# enable write permission

write_enable=YES

 

하셔서 리눅스에 ftp 서버 설치하고,

파일 백업하시면 됩니다.

ftp 클라이언트는 fileZilla 같은 것 쓰시면 됩니다.

 

sftp 사용을 권장한다고 해서, 이것 저것 해보다가 잘 안되어서

위의 방법을 권장해드립니다.

 

반응형

'etc > linux' 카테고리의 다른 글

linux 원격접속  (0) 2022.04.07
linux java process 찾기, java 실행  (0) 2020.01.31
Ubuntu 단축키  (0) 2019.04.26
시스템 관련  (0) 2019.04.23
troubleshooting  (0) 2019.04.02
반응형
  •  mySQL
select str_to_date(A.start_time,'%H%i') utc, date_add(str_to_date(A.start_time,'%H%i'),INTERVAL 9 HOUR) kr, A.svc_act_flag, A.* from tb_ic_contents_set_job_gr A order by 5;
select serial_no, contents_set_id,job_type,gen_date,complt_date,schdr_prcs_stat flag,TIMEDIFF(COMPLT_DATE, GEN_DATE) time, 
	CONVERT_TZ(gen_date,'+00:00','+09:00') kr_start, CONVERT_TZ(complt_date,'+00:00','+09:00') kr_end from TB_IC_DMON_SCHD_HIST A 
	where contents_set_id like 'xumo%'
	ORDER BY 4 DESC;
select * from TB_IC_ERROR_HIST where error_code like 'DM%' order by error_occur_date desc;
select DATE(strt_time),IC_CONTENTS_SET_ID,COUNT(*) from tb_ic_n_svc_bas GROUP BY DATE(strt_time),IC_CONTENTS_SET_ID;
select strt_date,IC_CONTENTS_SET_ID,COUNT(*) from vi_ic_n_brdcst_schd GROUP BY strt_date,IC_CONTENTS_SET_ID;

select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no, use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
	from TB_IC_N_CRL_BRDCST_PGM_HIST ORDER BY 4 DESC;
select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no,use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
	from TB_IC_N_CRL_BRDCST_SCHD_HIST A ORDER BY 4 DESC;
select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no,use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
	from TB_IC_N_CRL_PERSON_DETAIL_HIST A ORDER BY 4 DESC;
select * from tb_ic_n_crl_brdcst_pgm where crawling_hist_map_seq='63731';
select * from tb_ic_n_crl_brdcst_schd where crawling_hist_map_seq='63731';
select * from tb_ic_n_crl_person_detail where crawling_hist_map_seq='63731';
select * from tb_ic_n_svc_bas where IC_CONTENTS_SET_ID='';
select * from tb_ic_n_brdcst_pgm_mir where IC_CONTENTS_SET_ID='';
select * from tb_ic_n_brdcst_schd_org where IC_CONTENTS_SET_ID='';
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_BRDCST_PGM group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_BRDCST_schd group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_PERSON_DETAIL group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;

-- ipchannels

select A.ip_url, A.* from tb_ic_mso_bas A where mso_code like '30%'; 
select mso_code,mso_prdt_itm_code,prdt_ver,chan_ver,call_ver,chan_logo_ver,use_flag,interact_url, A.* from tb_ic_mso_prdt_itm_bas A where dvc_src_idx='7'; 
select A.mso_prdt_itm_code,A.use_flag, count(*) from tb_ic_mso_chan_map A, tb_ic_chan_bas B where A.mso_prdt_itm_code like '300%' and A.mso_prdt_itm_code!='300'
	and A.ic_contents_set_id=B.ic_contents_set_id and A.chan_code=B.chan_code and B.use_flag='Y' group by A.mso_prdt_itm_code,A.use_flag;
select chan_code from tb_ic_mso_chan_map where mso_prdt_itm_code='3000' order by chan_code;
select conf_code, stat_code, count(*) from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.conf_no=B.conf_no group by conf_code, stat_code;
select conf_code, stat_code, chan_no, count(*) from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.conf_no=B.conf_no group by conf_code, stat_code, chan_no;
select chan_code from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.CONF_NO=B.conf_no and stat_code='IB172' and conf_code='3000' order by chan_code;
select cntry_code,svc_set_cntry_id,use_flag,count(*) from tb_ic_chan_svc_cntry group by cntry_code,svc_set_cntry_id,use_flag; 
-- select IC_CONTENTS_SET_ID,src_id,use_flag, count(*) from tb_ic_chan_bas group by IC_CONTENTS_SET_ID,src_id,use_flag;
-- select IC_CONTENTS_SET_ID,chan_gr_id,use_flag, count(*) from tb_ic_chan_bas group by IC_CONTENTS_SET_ID,chan_gr_id,use_flag;
-- select IC_CONTENTS_SET_ID,phys_brdcst_type,use_flag, count(*) from tb_ic_chan_bas where phys_brdcst_type='IP' group by IC_CONTENTS_SET_ID,phys_brdcst_type,use_flag;
select IC_CONTENTS_SET_ID,cp_id,use_flag, count(*) from tb_ic_dmost_chan_bas group by IC_CONTENTS_SET_ID,cp_id,use_flag;

select str_to_date(A.start_time,'%H%i') utc, date_add(str_to_date(A.start_time,'%H%i'),INTERVAL 9 HOUR) kr, A.svc_act_flag, A.* from tb_ic_contents_set_job_gr A order by 5;
select serial_no, contents_set_id,job_type,gen_date,complt_date,schdr_prcs_stat flag,TIMEDIFF(COMPLT_DATE, GEN_DATE) time, 
    CONVERT_TZ(gen_date,'+00:00','+09:00') kr_start, CONVERT_TZ(complt_date,'+00:00','+09:00') kr_end from TB_IC_DMON_SCHD_HIST A 
    where contents_set_id like 'xumo%'
    ORDER BY 4 DESC;
select * from TB_IC_ERROR_HIST where error_code like 'DM%' order by error_occur_date desc;
select DATE(strt_time),IC_CONTENTS_SET_ID,COUNT(*) from tb_ic_n_svc_bas GROUP BY DATE(strt_time),IC_CONTENTS_SET_ID;
select strt_date,IC_CONTENTS_SET_ID,COUNT(*) from vi_ic_n_brdcst_schd GROUP BY strt_date,IC_CONTENTS_SET_ID;

select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no, use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
    from TB_IC_N_CRL_BRDCST_PGM_HIST ORDER BY 4 DESC;
select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no,use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
    from TB_IC_N_CRL_BRDCST_SCHD_HIST A ORDER BY 4 DESC;
select IC_CONTENTS_SET_ID,CRAWLING_SEQ,DB_DAEMON_JOB_TYPE type,CRT_DATE, LAST_CHG_DATE,gen_usr_no,use_flag,CONVERT_TZ(CRT_DATE,'+00:00','+09:00') kr_crt, CONVERT_TZ(LAST_CHG_DATE,'+00:00','+09:00') kr_last
    from TB_IC_N_CRL_PERSON_DETAIL_HIST A ORDER BY 4 DESC;
select * from tb_ic_n_crl_brdcst_pgm where crawling_hist_map_seq='63731';
select * from tb_ic_n_crl_brdcst_schd where crawling_hist_map_seq='63731';
select * from tb_ic_n_crl_person_detail where crawling_hist_map_seq='63731';
select * from tb_ic_n_svc_bas where IC_CONTENTS_SET_ID='';
select * from tb_ic_n_brdcst_pgm_mir where IC_CONTENTS_SET_ID='';
select * from tb_ic_n_brdcst_schd_org where IC_CONTENTS_SET_ID='';
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_BRDCST_PGM group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_BRDCST_schd group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;
select ic_contents_set_id,crawling_hist_map_seq, count(*) from TB_IC_N_CRL_PERSON_DETAIL group by ic_contents_set_id, crawling_hist_map_seq order by 3 desc;

-- ipchannels
select A.ip_url, A.* from tb_ic_mso_bas A where mso_code like '30%'; 
select mso_code,mso_prdt_itm_code,prdt_ver,chan_ver,call_ver,chan_logo_ver,use_flag,interact_url, A.* from tb_ic_mso_prdt_itm_bas A where dvc_src_idx='7'; 
select A.mso_prdt_itm_code,A.use_flag, count(*) from tb_ic_mso_chan_map A, tb_ic_chan_bas B where A.mso_prdt_itm_code like '300%' and A.mso_prdt_itm_code!='300'
    and A.ic_contents_set_id=B.ic_contents_set_id and A.chan_code=B.chan_code and B.use_flag='Y' group by A.mso_prdt_itm_code,A.use_flag;
select * from tb_ic_mso_chan_map where mso_prdt_itm_code like '3000%';
select conf_code, stat_code, count(*) from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.conf_no=B.conf_no group by conf_code, stat_code;
select conf_code, stat_code, chan_no, count(*) from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.conf_no=B.conf_no group by conf_code, stat_code, chan_no;
select A.stat_code, B.conf_code, A.chan_no, A.chan_code, A.chan_name 
    from tb_ib_conf_file A, tb_ib_conf_mgmt B where A.CONF_NO=B.conf_no and stat_code='IB171' and A.use_flag='Y' and B.use_flag='Y' and conf_code like '3000%';
select cntry_code,svc_set_cntry_id,use_flag,count(*) from tb_ic_chan_svc_cntry group by cntry_code,svc_set_cntry_id,use_flag; 
-- select IC_CONTENTS_SET_ID,src_id,use_flag, count(*) from tb_ic_chan_bas group by IC_CONTENTS_SET_ID,src_id,use_flag;
-- select IC_CONTENTS_SET_ID,chan_gr_id,use_flag, count(*) from tb_ic_chan_bas group by IC_CONTENTS_SET_ID,chan_gr_id,use_flag;
-- select IC_CONTENTS_SET_ID,phys_brdcst_type,use_flag, count(*) from tb_ic_chan_bas where phys_brdcst_type='IP' group by IC_CONTENTS_SET_ID,phys_brdcst_type,use_flag;
select IC_CONTENTS_SET_ID,cp_id,use_flag, count(*) from tb_ic_dmost_chan_bas group by IC_CONTENTS_SET_ID,cp_id,use_flag;

  • oracle

SELECT A.IC_CONTENTS_SET_ID,A.CRAWLING_SEQ seq,A.DB_DAEMON_JOB_TYPE type,gen_usr_no NO,TO_CHAR(CRT_DATE, 'YYYY/MM/DD hh24:mi') crt, TO_CHAR(LAST_CHG_DATE, 'YYYY/MM/DD hh24:mi') last_Chg, A.use_flag, 
TO_CHAR(CRT_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_crt, TO_CHAR(LAST_CHG_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_last
FROM hesdp_app.TB_IC_N_CRL_BRDCST_PGM_HIST A ORDER BY crt_date DESC;
SELECT A.IC_CONTENTS_SET_ID,A.CRAWLING_SEQ seq,A.DB_DAEMON_JOB_TYPE type,gen_usr_no NO,TO_CHAR(CRT_DATE, 'YYYY/MM/DD hh24:mi') crt, TO_CHAR(LAST_CHG_DATE, 'YYYY/MM/DD hh24:mi') last_Chg, A.use_flag, 
TO_CHAR(CRT_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_crt, TO_CHAR(LAST_CHG_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_last
FROM hesdp_app.TB_IC_N_CRL_BRDCST_SCHD_HIST A ORDER BY crt_date DESC;
SELECT A.IC_CONTENTS_SET_ID,A.CRAWLING_SEQ seq,A.DB_DAEMON_JOB_TYPE type,gen_usr_no NO,TO_CHAR(CRT_DATE, 'YYYY/MM/DD hh24:mi') crt, TO_CHAR(LAST_CHG_DATE, 'YYYY/MM/DD hh24:mi') last_Chg, A.use_flag, 
TO_CHAR(CRT_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_crt, TO_CHAR(LAST_CHG_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_last
FROM hesdp_app.TB_IC_N_CRL_PERSON_DETAIL_HIST A ORDER BY crt_date DESC; 

SELECT SERIAL_NO seq,CONTENTS_SET_ID,TO_CHAR(GEN_DATE, 'YYYY/MM/DD hh24:mi') GEN, TO_CHAR(COMPLT_DATE, 'YYYY/MM/DD hh24:mi') COMPLT, SCHDR_PRCS_STAT F,JOB_TYPE,
TO_CHAR(GEN_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_gen, TO_CHAR(COMPLT_DATE + 9/24, 'YYYY/MM/DD hh24:mi') kr_complt, ROUND((COMPLT_DATE - GEN_DATE) * 24 * 60, 0) time
FROM hesdp_app.TB_IC_DMON_SCHD_HIST A ORDER BY 1 DESC; 

SELECT TO_CHAR(TO_DATE(A.start_time,'hh24mi')+9/24,'hh24:mi') KST, 'UTC'||TO_CHAR(TO_DATE(A.start_time,'hh24mi'),'hh24:mi') GMT,A.INTVL_TIME intvl , A.SVC_ACT_FLAG F, A.* 
FROM hesdp_app.tb_ic_contents_set_job_gr A ORDER BY 6,1; 

SELECT IC_CONTENTS_SET_ID, TO_CHAR(STRT_TIME,'YYYY-MM-DD'), COUNT(*) FROM hesdp_app.TB_IC_N_SVC_BAS GROUP BY IC_CONTENTS_SET_ID, TO_CHAR(STRT_TIME,'YYYY-MM-DD') ORDER BY 1,2; 
SELECT IC_CONTENTS_SET_ID, TO_CHAR(STRT_DATE,'YYYY-MM-DD'), COUNT(*) FROM hesdp_app.VI_IC_N_BRDCST_SCHD WHERE use_flag='Y' GROUP BY IC_CONTENTS_SET_ID, TO_CHAR(STRT_DATE,'YYYY-MM-DD') ORDER BY 1,2; 
SELECT chan_code, COUNT(*) FROM TB_IC_N_SVC_BAS WHERE hesdp_app.chan_code LIKE '9999%' GROUP BY chan_code; 
SELECT chan_code, COUNT(*) FROM VI_IC_N_BRDCST_SCHD WHERE hesdp_app.chan_code LIKE '9999%' GROUP BY chan_code; 
SELECT TO_CHAR(STRT_TIME,'YYYY-MM-DD'), COUNT(*) FROM hesdp_app.TB_IC_N_SVC_BAS WHERE chan_code LIKE '9999%' GROUP BY TO_CHAR(STRT_TIME,'YYYY-MM-DD');
SELECT TO_CHAR(STRT_DATE,'YYYY-MM-DD'), COUNT(*) FROM hesdp_app.VI_IC_N_BRDCST_SCHD WHERE chan_code LIKE '9999%' GROUP BY TO_CHAR(STRT_DATE,'YYYY-MM-DD');

SELECT * FROM hesdp_app.tb_ic_error_hist WHERE ERROR_CODE LIKE 'DM%' ORDER BY error_occur_date DESC;
SELECT * FROM hesdp_app.tb_ic_last_upd_time_bas;

 

반응형

'db' 카테고리의 다른 글

oracle VS mysql  (0) 2020.02.26
mysql query tip  (0) 2020.01.31
H2 DB 사용방법  (0) 2019.10.30
mysql.*, information_schema.*  (0) 2019.09.06
mySQL local 설치 및 실행 (on windows)  (0) 2019.02.27
반응형
반응형
반응형

* [{},{},] 이렇게 json 잘못 요청하면
400 Bad Request
"JSON parse error: Unexpected character (']' (code 93)): expected a value; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (']' (code 93)): expected a value\n at [Source: (PushbackInputStream); line: 108, column: 3] (through reference chain: java.lang.Object[][2]))"

반응형

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

JPA ddl설정, queryDSL  (0) 2019.11.21
javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring  (0) 2019.06.12
spring security...  (0) 2019.06.11
jpa ...  (0) 2019.03.08
반응형
반응형

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

javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring error  (0) 2019.06.14
spring security...  (0) 2019.06.11
jpa ...  (0) 2019.03.08
spring JPA 환경설정  (0) 2019.02.28
반응형

git bash shorcuts

  • copy(ctrl+insert)
  • paste(shift+insert)
반응형

'git' 카테고리의 다른 글

git stash: branch에 따라 달라지지 않고 전체적으로 공유됨  (0) 2019.12.18
git ignore  (0) 2019.09.03
git rebase, cherry-pick을 잘 이해해보자  (0) 2019.06.11
git tag  (0) 2019.06.07
git diff troubleshooting  (0) 2019.06.07
반응형

HttpServletRequest.servletRequest.isUserInRole("ADMIN")

Returns a <code>java.security.Principal</code> object containing the name

* of the current authenticated user. If the user has not been

* authenticated, the method returns <code>null</code>

흠..어떻게 동작하는건지...

 

spring JwtAuthenticationFilter 401 unauthorized 안나도록 하기 위해 뭔가 처리를 해주니까 적용이 됬는데...
어떤 method 내용을 주석처리하고 대신 http.csrf.....이런거 추가했던거 같은데
정확히 기억이 안남 ㅠㅠ

http.csrf().disable(); 이거였던듯
(https://cnpnote.tistory.com/entry/SPRING-Spring-Boot-401-Unauthorized-%EB%B3%B4%EC%95%88-%EA%B8%B0%EB%8A%A5-%EC%97%86%EC%9D%8C)

SecurityConfig extends WebSecurityConfigurerAdapter

@Override
protected void configure(HttpSecurity http) throws Exception {
/////요부분이었던듯
///// permitAll로는 해결안되었고 http.crsf().xxxxxx로 해결되었던거 같음

http.cors().and().csrf().disable().exceptionHandling()
.authenticationEntryPoint(unauthorizedHandler).and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().authorizeRequests()
.antMatchers("/", "/favicon.ico", "/manifest.json", "/**/*.png", "/**/*.gif",
"/**/*.svg", "/**/*.jpg", "/**/*.html", "/**/*.css", "/**/*.js")
.permitAll().antMatchers("/api/auth/**").permitAll()
.antMatchers("/api/users/checkUsernameAvailability",
"/api/users/checkEmailAvailability")
.permitAll().anyRequest().authenticated();


// Add our custom JWT security filter
http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);


}

https://stackoverflow.com/questions/52904227/spring-security-401-unauthorized-even-with-permitall

반응형

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

javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring error  (0) 2019.06.14
spring  (0) 2019.06.12
jpa ...  (0) 2019.03.08
spring JPA 환경설정  (0) 2019.02.28
반응형

현재 이런상태라고 할 때

  • A <-B(master)
  • A <-C(develop)

mater와 develop branch를 합치려면 merge 또는 rebase 할수 있음

merge를 한다는 것은 parent를 2개로 모시겠다는 것,

rebase는 특정한 branch를 base(parent의 의미로 봐도 무방할 듯, 혹은 공통조상)로 보고 그 이후 수정을 모두 복사해봐서 갖다붙여서 일렬로 만들겠다는 것

git checkout master, git rebase develp을 하면

  • A <- C(develop) <-B'(master) 가 된다.

git checkout develp, git rebase master를 하면

  • A <- B(master) <- C(develop)이 된다
git rebase [branch] 를 한다는 것은 [branch]까지는 base로 보존하고 그 이후에는 현재 checkout 되있는 애의 변경을 다 복사해서 갖다붙이겠다는 것

cherry-pick은 한개 commit만 rebase하는 것과 같은 효과를 낼수 있다. 다만 cherry-pick과 rebase는 수동태/능동태 처럼 주어/목적어가 반대로 사용된다. cherry-pick은 특정커밋을 가져오는 것이고 rebase는 특정 브랜치를 base로 만들어버리는 것

  • A <- C(develop) <-B'(master) 로 만드려면, 다음 2가지로 가능
    • git checkout develop, git cherry-pick (B No.)
    • git checkout master, git rebase develop
반응형

'git' 카테고리의 다른 글

git ignore  (0) 2019.09.03
git bash shorcuts: copy(ctrl+insert), paste(shift+insert)  (0) 2019.06.11
git tag  (0) 2019.06.07
git diff troubleshooting  (0) 2019.06.07
gerrit  (0) 2019.04.30
반응형
  • git log --pretty=format:"%h %s"
  • git log --oneline [직전 반영된 submission번호] ..[반영할 submission번호]  git log --oneline submissions/2..submissions/5
  • local에 tag 추가 (annotated tab)
    • git tag -a submissions/1 -m "submissions/1" → 현재 HEAD가 가리키는 커밋을 가리키는 태그가 생성, HEAD가 뭔지 봐야함
    • git tag -a versions/1.0.0 -m "versions/1.0.0"
    • lightweight tag를 붙이려면 -a -m option "message" 빼고 git tag myTag
    • 특정 commit에 붙이려면 뒤에 hashCode 붙임 git tag myTag 9fceb02
  •  remote에 tag push
    • git push --tag → remote에는 적용안됨, local에만 적용되는 듯 remote에 적용됨
    • git push origin v1.0.0 → remote에 특정태그 적용
    • git push origin --tags → remote에 모든태그 적용
  • tig 해보면 맨 위에가 submissions/1이라는게 로그에 붙어져있음...
  • tag 확인
    • git tag
    • git show-ref submissions/1
  • tag삭제
    • git tag -d v1.0.0 → local에서 v1.0.0 태그 삭제
    • git push origin :v1.0.0 → remote 서버에서 v1.0.0 태그 삭제
반응형

'git' 카테고리의 다른 글

git bash shorcuts: copy(ctrl+insert), paste(shift+insert)  (0) 2019.06.11
git rebase, cherry-pick을 잘 이해해보자  (0) 2019.06.11
git diff troubleshooting  (0) 2019.06.07
gerrit  (0) 2019.04.30
Git: ssh public key 등록  (0) 2019.04.26

+ Recent posts