일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- $emit()
- .getClass()
- Express
- paraller
- redux
- 트리 회전
- 리덕스 공식문서
- 오라클
- EBS
- ACCESS_REFUSED
- 컴포넌트 주도
- react
- forNmae()
- 자바
- 리덕스
- Java Reflextion API
- 애그리거트
- rabbitmq 에러
- 커스텀 로그인
- vue.js
- quert
- 오라클 병렬처리
- 네임드 뷰
- AWS
- 리액트
- exiting abnormally
- 자료구조
- VUE
- REDIS
- 도커빌드
- Today
- Total
목록전체 글 (86)
개발정리

상태 관리작은 리액트 카운터 컴포넌트를 만들어 봅시다.이것은 컴포넌트 상태의 수를 추적하고 버튼이 클릭 되었을때 숫자를 증가시킵니다. function Counter(){ //state: a counter value const [counter,setCounter] = useState(0); //Action: code that causes an update to the state when something happens const increment = () => { setCounter(prevCounter => prevCounter +1); } //view: the UI definition return( value: {counter..

리덕스 왜 쓰지?우리는 이때가지 리덕스라는 라이브러리를 사용하지 않고도 리액트 앱을 잘 만들어 냈습니다.하지만 프로젝트의 크기가 커질수록 전역적으로 관리해야하는 상태의 수가 많아질 수도 있으며 프로젝트가 복잡해 질수 있습니다.다음은 리덕스 공신문서에서 언제 리덕스를 사용해야하는지 명시해 놓은 것 입니다. 어쩌면 리덕스는 당신에게 필요없는 라이브러리 일지도 모릅니다.오히려 코드가 복잡해지고 빙 돌아간다는 느낌을 받을 것 입니다. https://medium.com/lunit/%EB%8B%B9%EC%8B%A0%EC%97%90%EA%B2%8C-redux%EB%8A%94-%ED%95%84%EC%9A%94-%EC%97%86%EC%9D%84%EC%A7%80%EB%8F%84-%EB%AA%A8%EB%A6%85%EB%8B..

스프링 swagger 적용기스프링에서 swagger를 적용하기 위해 여러 문제를 경험 했다.과거에는 스프링에 swagger ui를 적용하기위해 springfox라는것을 사용했다고한다.하지만 최근에는 업데이트를 종료 했으며 springdoc이라는것이 이것을 대체한다. implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'간단하게 다음과 같은 의존을 주입하고localhost:8080/swagger-ui/index.html 로 접속하면 다음과 같은 화면을 볼수 있습니다.@Tag 애너테이션@Tag 애너테이션을 사용하면 api의 태그를 설정 할수 있습니다.@RestController@AllArgsConstructor@Tag(name ..
캐시 추상화 이해 하기캐시 vs 버퍼캐시와 버퍼 라는 용어는 상호 호환적으로 사용되는 경향이 있습니다.하지만 그들은 다른것을 나타낸 다는 것을 알아두세요.전통적으로, 버퍼는 빠르고 느린 독립체 사이의 데이터를 위한 임시 저장소로 사용됩니다.한 당사자가 다른 당사자를 기다려야 하기 때문에 (성능에 영향을 끼치는),버퍼는 작은 단위로 움직이기 보다 전체 블록의 데이터를 한번에 움직이는 것을 허용함 으로써 이러한 것을 완화 합니다.데이터는 버퍼로 부터 오직 한번만 읽어지고 써집니다.게다가,버퍼들은 적어도 한 당사자가 볼 수 있습니다. 이것을 인식하고 있는.반면에 캐시는 , 정의하자면 hidden 입니다., 그리고 어떠한 당사자도 캐시가 일어나고 있다는 것을 인식하지 못합니다.이것은 또한 성능을 향상 시킵니다...

List레디스에서 리스트는 문자열의 연결리스트 입니다.레디스의 리스트는 다음과 같은 용도로 사용됩니다.스택과 큐의 구현백그라운드 워커시스템을 관리하기 위한 큐기본적인 커맨드LPUSH: 리스트의 헤드에 추가합니다. (RPUSH는 리스트의 TAIL에 추가)LPOP : 헤드의 값을 제거하고 리턴합니다. (RPOP은 TAIL의 값을 제거하고 리턴)LLEN : 리스트의 길이를 출력합니다.LMOVE : 리스트에서 원소를 꺼내와 다른 원소로 넣습니다.LTRIM : 지정한 길이의 리스트로 줄입니다.

레디스는 키-값 형태의 데이터 저장소 입니다.레디스의 모든 데이터는 키에 연결되어 있습니다.따라서 데이터를 검색할 때는 키를 이용해서 검색합니다.String레디스 string은 바이트의 연속을 저장합니다.때문에 이미지 같은 파일도 저장이 가능합니다.레디스의 키는 캐시를 위해 사용됩니다.우리가 값에 string값을 넣는다면 레디스의 키도 string이기 때문에 문자열에 문자열을 연결하는 것이 됩니다.(1대1 대응)> SET bike:1 Deimos OK> GET bike:1 "Deimos"위의 예제에서 볼 수 있듯이 SET과 GET 명령어를 통해 문자열을 저장하고 불러올수 있습니다.만약 SET을 사용하는데 이미 같은 이름의 키가 존재한다면 값을 덮어 씌우게 됩니다. > set bike:1 bike ..

스프링 유효성 검사유효성 검사란 사용자가 요청한 데이터의 폼이 어던 조건에 충족하는 지 판단하는 과정입니다.예를 들어 비밀번호에 특수문자가 포함되어야 한다거나 10자리 이상이어야한다는 조건을 들수 있습니다. 우리가 살펴볼 예제는 상품을 등록하는 예제입니다.아이템의 필드로는 itemName,price,quantity가 있습니다. 우리는 itemName은 공백을 안넣게 하고price는 1000원 이상이어야하며quantity는 음수가 아닌 값을 받도록 유효성 검사를 진행 할 것 입니다. @Data@Entitypublic class Item { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String itemNa..

타임리프를 컴포넌트화 해서 사용하고 싶다!평소 html을 사용하는 것 처럼 타임리프를 사용해서 개발을 하는 중이었습니다...main.html에 다음과 같이 헤더,메인,footer를 사용하여 한 파일에 작성하였습니다.하지만 로그인 창을 개발 하려고 하니 귀찮은 점이 생겼습니다... 헤더와 footer를 다시 개발 하라고??로그인 페이지 역시 헤더와 footer를 똑같이 개발 해야 했습니다. 물론 복사 붙연넣기를 한다면 해결되지만 그렇게 깔끔한 방법은 아니었습니다.그래서 찾아보던중 fragment라는 것을 알게 되었습니다. Fragment 가볍게 살펴보기가볍게 살펴 보자면프래그먼트는 th:fragment="fragment명" 이라는 문법으로 선언 할 수 있습니다.그 이후에 다른 h..