Service에서 checked의 false의 갯수를 리턴해주는 dao가 없어서 계속 갯수가 0이 나왔다.앞으로 전체적인 로직의 움직임을 항상 테스트하는 습관을 가져야겠다알람 창에서 turn off 버튼을 누를 때 동작이 안먹는 상황이 발생 원래는 turn off클릭
notification에 대한 해결방법맨 처음 로그인 했을 때 checked 의 갯수가 0개 이상인지 확인알람 버튼을 클릭하면 벨모양으로 바뀌고 해당아이디의 cheked가 true로 바뀜그 다음에 해당아이디의 알람 목록을 가져옴댓글을 남기면 알람이 1로 바뀌고 알람목록
오늘은 알람의 95%이상을 완성했다.일단 지금까지 완성된 부분은로그인했을 때 새로운 알림이 있으면 알림 숫자모양의 notification이 나오고noti를 클릭할경우 평상시 noti모양으로 바뀐다.현재 로그인한 사람에게 댓글을 달 경우 상대방에게 알람이 전송되면서 추가
목표1. 현재로그인한 사람(댓글 다는 사람)이 해당 게시물의 작성자와 같으면 알람을 보내지 않고 알람 DB에 저장하지 않음HOW) 현재 댓글을 다는 사람이 누구인지 파악해당 게시물이 작성자와 같은지 파악두개가 같다면 알람에 저장하지 않음댓글을 다는 사람은 REPLYE
HttpSessionListener HttpSession객체가 생성되고 제거될 때 발생되는 이벤트가 HttpSessionEvent이고 이 이벤트를 처리 스프링 시큐리티 x → HttpSessionListener구현 스프링 시큐리티 o → HttpSessionEve
관리자 페이지의 게시물관리 부분 앞단 만들기 view에서 보여줄 내용 셀렉트박스 | 제목 | 댓글수 | 글쓴이 | 작성일 | 관리 페이징 검색게시물관리 부분은 어느정도 완료했다. 메인페이지에서 보여주는 내용이랑 다른점이 없어서 금방 구현할 수 있었다. 앞으로 삭제
독거노인 코드정리메인페이지에서 검색메인페이지에서 글 작성메인페이지 글 상세조회메인페이지 글 수정삭제resultmap 과 resulttype의 차이점 resultTypeibatis 에서 resultClass → mybatis 에서 resultType 으로 바뀜클래스명
Spring Security AuthenticationManager : 인증을 담당하는 존재 , 그 밑에 다양한 방식의 인증을 처리할 수 있도록 아래와 같은 구조로 설계ProviderManager : 인증에 대한 처리를 AuthenticationProvider라는 타
❗ 오늘 할 일 독거노인 정리 다음 일정 정리 ✅오늘 한 일 회원가입 부분 재정리 아이디 중복체크 부분 수정 비밀번호 확인 추가
맨 처음에 인증번호 전송 버튼을 누르기 전에는 인증번호 입력란을 disable 인증 번호(111111~999999)를 작성한 메일로 전송되면 인증번호 입력창을 사용할 수 있게 만듬실시간으로 인증번호와 내가 입력한 인증번호가 일치한지 확인일치하면 다시 인증번호 입력 창을
(-)가 이동하면서 전류가 흐른다.부도체 : 전류 X도체 : 전류가 흐름반도체 : 전류가 흐르거나 전류가 흐르지 않거나 (온도에 의존한다) \- 온도가 높아지면 전류가 흐르지않고 \- 온도가 낮아지면 전류가 잘 흐른다 예를들어 전산실 같은 경우에는 온도를 낮게 설
자바스크립트의 함수는 모든 자료형을 반환 할 수 있다.함수가 함수를 반환하는 것도 가능하다 => 고차함수함수 이름뒤에 ()가 붙은 코드가 있다면 그 부분을 실제 return 하는 값으로 치환하면 이해하기 쉽다if 문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다
연이어 계산하기
청군 왼쪽 100 가운데 홍군 150 오른쪽 청군 100약속 : 프로토콜TCP해쉬RSA(보안)Math.random()사용반올림 Math.round올림 Math.ceil내림 Math.floor
전화 , 동영상 전송에 쓰임indexOf : 원하는 값이 들어 있다면 해당 인덱스를 알려주고, 들어 있지 않다면 -1 반환includes : true / false로 있는지 없는지 알려줌map은 기존 배열의 요소를 일대일로 다른 값으로 바꿈 , 단 새로운 배열을 만들어
단방향 암호화 기법 (복호화 불가능)key가 많을 수록 -> 고정된 길이의 해시를 생성=> 해싱해시를 통해서 원본과 가짜를 구분할 수 있다.md5 , SHA-1 -> 원리 파악됨최근에는 SHA-256 , SHA-512 사용레인보우 테이블 => Salt를 사용블록이 지
TCP는 신뢰성은 확보할 수 있지만 보안 유지는 안된다.키가 해킹당 할 수 있다.대칭키를 이용하면 내용을 암호화 할 수 없고, 내용을 변경했는지, 누구로부터 왔는지는 알 수 없다.임호화 , 전자서명에서 RSA를 사용공개키개인키내용은 암호화 할 수 있지만, 내용 변경,
splice함수는 원본 배열을 수정 한다slice함수는 원본 배열을 수정하지 않는다.sort에서 a-b가 0보다 크면 b,a 순서로 정렬 , a-b 0보다 작으면 a,b순서로 정렬 \- a-b 이면 오름차순 b-a이면 내림차순변수는 스코프라는 것을 가진다. \-
OSI 7계층 Port란 OSI 7계층이란 ![](https://images.velog.io/images/jisung/post/cfb2bad3-be9c-4151-8b14-9c73ae2ef7dd/imag
배열.includes \- ||을 사용한 코드는 배열의 includes 메서드로 반복을 줄일 수 있다. 태그.classList.contains('클래스)를 통해서 해당 클래스가 들어있는지 true,false로 알 수 있다태그.classList.add('클래스')
Date 클래스배열.reduce
배열안에 배열이 있을 때 이차원 배열구조 분해 할당 \- 객체안의 속성이름과 변수 이름이 같을 때 사용
이벤트 버블링 \- event.target은 이벤트가 발생한 직접적인 대상 \- 이벤트가 발생한 태그가 아닌 이벤트를 연결한 태그에 접근하고 싶다면 event.currentTarget을 사용 \- HTML에서는 이벤트가 발생할 때 부모 태그에도 순차적으로 동일한
깊은 복사parse메서드는 문자열을 객체로stringfy 메자열로 만듬얕은 복사가장 바깥 객체만 복사되고. 내부 객체는 참조 관계를 유지하는 복사스프레드 문법은 기존 객체의 속성을 새 객체에 할당할 때 사용 배열은 ...배열 , 객체라면 { ...객체 }
RAM : 전류를 이용해서 데이터를 저장, 컴퓨터가 종료되면 데이터가 소멸 , 임시저장HDD : 스크래치를 이용해 기록, 컴퓨터가 종료되도 데이터는 살아있음 , 영구적사용자가 하드웨어에 직접 명령을 내리는게 아니라 사용자가 OS에게 명령을 내리면 OS가 H/W를 제어한
메모리는 컴퓨터의 저장 역역cpu는 연산하는 영역자바에서 static, heap , stack은 논리적으로 영역을 구분static : 프로그램 시작 전부터 프로그램 종료까지 존재 , 가장 오래 살아있음heap : 동적할당 , static 다음으로 오래 살아 있음stac
HelloWorld.java 파일을 만들어서 cmd에서 해당 경로로 이동 후 javac HelloWorld.java로 컴파일 java HelloWorld.java로 실행
일반 변수 : 컴파일 시 크기를 알 수 있기 때문에 값을 가지고 있다,레퍼런스 변수(참조 변수) : 컴파일시 크기를 알 수 없기 때문에 메모리 설계가 불가능하고 따라서 변수에는 heap의 주소값을 가지고 있다., 커스텀 타입은 4Byte로 고정메서드 : 클래스가 하는
메서드 : 어떤 클래스의 행위
연산자 나머지 캐스팅
패키지 : .java 파일의 모임import : 다른 패키지에있는 클래스를 사용하고자 할 때 import를 해줌: 같은 패키지에 있다면 import 필요없음1\. default 접근제어자 : 동일한 패키지에서만 접근가능2\. public 접근제어자 : 다른 패키지에서도
클래스 만들기 생성자 생성자 (this)
클래스 : 설계도오브젝트 : 클래스가 인스턴스 될 수 있는 것 == new가 가능한 것들인스턴스 : 힙 공간에 뜬 것들, new된 것객체지향 프로그래밍1\. 클래스의 필드는 메서드에 의해서 변한다2\. 필드를 직접 접근하지 못하게 private 접근 제어자를 사용한다
overloading : 과적재 => 함수의 이름이 같아도 다른 함수로 인식되게오버로딩은 어느 정도 경우의 수 제한이 있다면 좋다, 하지만 경우의 수가 많다면 힘들다.
추상적인 것 (new 할 수 없다)추상클래스는 추상메서드 와 일반메서드 모두 작성할 수 있다추상메서드는 자식 클래스에서 무조건 구현해야한다.넓은 관점 인터페이스 1\. 일방적인 약속 2. 갑과 을이 존재하는 약속자바에서 인터페이스행위에 대한 제약인터페이스 : 행위에
SRP : Single Response Principle (단일 책임 원칙)책임 -> 행위 -> 메서드DIP : Dependency Inversion Principle (의존성 역전 원칙)추상적인 것에 의존해야 한다SRP와 DIP를 지키면 코드의 수정이 편하다연관된 데
Object 클래스 : 모든 클래스의 부모 클래스컬렉션 : 가변적, 동적, 데이터 읽는게 느리다 , 추가가 가능배열 : 정적 , 데이터 읽는게 빠르다 , 연속된 공간이 없는 경우가 있기 때문에 추가 할 수 없다.
동기 : 일의 순서가 있다. 동기는 CPU가 멍때리는 상황이 발생할 수 있다.비동기 : 일의 순서가 없다 빠른 속도로 실행해서 동시에 진행하는 효과를 볼 수 있다. 총합시간은 각각 실행하는 것보다 느리다. CPU가 멍때리는 시간을 없애준다.운영 전 예외는 컴파일
InputStreamReader를 사용하면 부호화를 자동으로 적용그러나 가변적으로 사용할 수 없어서 사이즈를 고정적으로 지정해야해서 메모리 낭비가 발생할 수 있다.BufferedReader숫자(이진코드) -> 부호화문자를 가변적으로 받는다. 배열의 공간 낭비가 없다.양
소켓통신(양방향 통신) 서버소켓 클라이언트 소켓 웹소켓
데이터의 처리 방식과 입출력1.일괄처리 방식데이터를 수집하였다가 일정 시점 단위로 일괄해서 처리입출력은 사람이 개입하지 않는 형식으로 이루어짐2.대화식처리벙식사용자가 직접 데이터를 편리하게 입력하기 위한 입력장치와 즉시 컴퓨터의 반응을확인할 수 있는 출력장치가 필요함
객체지향은 우리가 주변에서 사물을 인지하는 방식대로 프로그래밍 하는 방식객체 지향은 직관적이다.객체 지향을 이해하기 위한 큰 그림 1\. 세상에 존재하는 모든 것은 사물, 즉 객체(object) 2\. 각각의 사물은 고유하다 3\. 사물은 속성(prop
객체 \- 유일무이하게 존재하는 실체 \- 속성에 값을 가지고 있다클래스 \- 개념 \- 분류 체계 \- 속성에 값을 가질 수 없다 => 같은 클래스의 모든 객체가 같은 값을 가지고 있다면 그 값을 클래스에 저장하면 메모리를 아낄수 있
운영체제 강의 듣기스프링 117 ~ 140P인터페이스: 구현 클래스 is able to 인터페이스해석 : 구현 클래스는 인터페이스할 수 있다.예제 : 고래는 헤엄칠 수 있다.상위클래스는 하위 클래스에게 특성(속성과 메서드)을 상속해 주고, 인터페이스는 클래스가 '무엇을
스프링 입문 146 ~ 160PC언어 추상 메서드선언부는 있는데 구현부가 없는 메서드추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스로 선언해야한다.추상 클래스는 인스턴스, 즉 객체를 만들 수 없다. new를 사용할 수 없다.추상 메서드는 하위 클래스에게
컴퓨터의이해스프링 160~177p만들어진 객체가 특정 클래스의 인스턴스인지 물어보는 연산자객체 참조 변수의 타입이 아닌 실제 객체의 타입에 의해 처리instanceof연산자는 클래스들의 상속 관계뿐만 아니라 인터페이스 구현 관계에서도 동일하게 적용this는 객체가 자기
스프링 183 ~디지털 논리회로자신의 확장에는 열려 있고 주변의 변화에 대해서는 닫혀 있어야한다.개방 폐쇄 원칙을 지키면 유연성,재사용성,유지보수성 등을 얻을 수 있다.개방 폐쇄 원칙을 지키지 않은경우개방 폐쇄 원칙을 지킨 경우하위 클래스의 인스턴스는 상위형 객체 참조
이산수학 강의 듣기스프링 242 ~ 운전자가 타이어를 생산한다 => Tire tire = new KoreaTire();운전자가 자동차를 생산하면서 타이어를 장착한다. => Car car = new Car(tire);의존성 주입 == 외부에서 new해서 주입해주는것의존성
운영체제 강의듣기스프링 270 ~인터페이스 구현이 우선순위type 기준 -> id체크@Autowired와 @Resource를 겉으로 보기에는 같은 기능을 하는 것 같다.@Autowired vs @Resource@Autowired 스프링의 어노테이션type과 id중에
c프로그래밍인터넷과 정보사회스프링 292 ~ 315\* runSomething() 이 Pointcut @Before("execution(\* runSomething())")은 지금 선언하고 있는 메서드를(public void before) 수행하기 전에 실행하라는 의
이산수학 듣기스프링5 31 ~ 52P메이븐 프로젝트에서 핵심은 pom.xmlpom.xml은 프로젝트에서 필요로 하는 의존 모듈이나 플러그인 등에 대한 설정을 담는다.메이븐 로컬 리포지토리 : 로컬에서 해당 jar가 있는지 확인해서 있으면 가져옴원격 리포지토리 : 로컬에
DI는 의존 주입이다.의존 : 객체 간의 의존을 의미MemberRegisterService에서 MemberDao 클래스의 메서드를 사용한 클래스가 다른 클래스의 메서드를 실행할 때 이를 의존한다라고 표현의존은 변경에 의해 영향을 받는 관계를 의미의존하는 대상을 구하는
스프링은 필요한 객체를 생성하고 생성한 객체에 의존을 주입한다.스프링 자바 설정에서는 생성자를 이용해서 의존 객체를 주입하기 위해 해당 설정을 담은 메서드를 호출생성자 외에 세터 메서드를 이용해서 객체를 주입메서드 이름이 set으로 시작해야한다set 뒤에 첫 글자는 대
Chap 04 의존 자동 주입 @Autowired 애노테이션을 이용한 자동주입 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. 의존 주입 기능은 의존을 주입할 대상에 @Autowired 애노테이션을 붙이면 된다.
자동 주입할 대상이 필수가 아닌경우 3가지 방법을 이용해서 처리할 수 있다.메서드와 필드에 둘 다 적용 가능하다.@Autowired 애노테이션의 required 속성을 false로 설정매칭되는 빈이 없어도 익셉션이 발생하지 않으며 자동 주입을 수행하지 않는다.자바8의
브라우저의 렌더링 엔진이 html을 해석하여 문서를 객체화 => 자바스크립트로 접근 가능 => 문서 객체 모델 (DOM)웹 브라우저를 제어하기 위해서 브라우저를 객체화브라우저 객체 모델 == 브라우저를 제어하기 위한 인터페이스웹페이지 자체를 컨트롤 -> document
position 속성은 요소들이 화면에 어떻게 배치될지를 지정합니다.특이사항으로는, 이 속성은 자식 요소에게 대물림되지 않는다는 점이 있습니다. static은 기본값으로, 전적으로 페이지의 흐름을 따르며 top, bottom, left, right, z-index
display를 flex로 지정하면 플렉스 방식으로 자식 요소들을 배치하게 됩니다.inline-flex는 해당 컨테니어 요소를 인라인으로 만든다는 차이가 있습니다.flex-direction은 내부 요소(아이템)들을 어느 축(가로 또는 세로)을이 값에 따라 justify
52 번들링과 웹팩, 바벨여러개의 파일을 하나의 파일로 묶어주는 모듈 번들러웹팩을 사용하면 클라이언트에서 서버로 요청하는 갯수를 줄일 수 있다.why) 하나의 파일로 묶어주기 때문에 여러번 요청 할 필요가 없다.UI 개발을 위한 자바스크립트 프레임워크선언적 렌더링Vue
UI(HTML , CSS , JS)를 재사용할 수 있도록 정의한 것컴포넌트 정의 → 컴포넌트 등록 → 컴포넌트 사용문자열 템플릿Single File Component.js는 HTML과 Javascript는 모듈화 할 수 있지만 css는 빠져있음문자열 템플릿은 가독성이
data ,methods ,mounted와 같은 옵션을 사용반응형 코드를 작성하는 단일 setup 함수가 있다.Composition API는 옵션(data, methods, ...)을 선언하는 대신 가져온 함수(ref, onMounted, ...)를 사용하여 Vue 컴
템플릿 문법 ({{ }})은 편하지만 코드가 길어지면 가독성이 떨어지고 유지보수가 어려움 , 따라서 이럴 때 사용하는 것이 계산된 속성 computed property메서드와 동일 한 결과를 얻을 수 있지만 computed는 결과가 캐쉬되기 때문에 computed내 반
v-if 디렉티브는 조건부로 블록을 렌더링 할 때 사용v-if가 거짓일때 렌더링else if블록여러개의 HTML 요소를 v-if 디렉티브로 연결하기 위해서 사용v-if는 "실제(real)"로 렌더링됩니다. 전환 할 때 블록 내부의 컴포넌트들이 제거되고 다시 생성 =>
디렉티브와 이벤트 처리에 대해서 공부
양방향 바인딩
props
컴포넌트 기본구조 , 라이프사이클 , 데이터 바인딩
axios , mixins , mock서버
컴포넌트 심화 학습
컴포지션 API
Props에 대해서 공부
컴포넌트 Event
Non-Props
slot
Provide / Inject
Lifecycle hook
template refs
JSTL (JSP Standard Tag Library) 스크립트릿( )을 사용하지 않고 HTML 형식을 유지해서 반복문,조건문,간단 연산 등을 손쉽게 하기위해서 사용 JSTL을 사용하려면 JSP taglib 지시어를 추가 해야한다 라이브러리는 코어, xml ,fo