Hello World

    프로필 생성관련 공부#2

    이제 서버 요청 페이지 get페이지가 아닌 사용자가 직접 요청하는 choose 페이지를 만들어보자. 우선. 당연하게도 매핑 자체는 POST로 던져야겠지. 그다음 ajax 또한 요청할 거니 ModelAndView 타입이 아니라 String 타입으로 responseJson.toString()을 쓰기 위해 String 타입으로 postAdd를 만들어주고 매핑되는 곳은 add로 다가 던져주자. 어차피 ModelAndView에다가 값을 넣어주는 게 아니기 때문에 value의 값은 add로 지정해줘도 딱히 상관없을 듯하다. 그다음 ajax 처리를 하기 위해 String 타입으로 지정해주기 전 비동기 처리 시 사용하는 어노테이션 또한 생각해줘야겠지 그것이 바로 ResponseBody어노테이션이다. 즉, 응답하는 본문..

    프로필 생성관련 공부#1

    로그인 시에 자동으로 만들어지는 프로필 생성되는 프로필의 경우에는 이름을 값으로 받기 때문에 RequestParam 어노테이션을 이용 ModelAndView를 받는 getChoose를 만들어주고 앞서 말했듯이 이름을 값으로 받기 때문에 RequestParma 어노테이션 이용, SessionAttribute 어노테이션의 경우 로그인한 유저마다 프로필이 다르기 때문에 해당 어노테이션을 이용하여 로그인한 유저의 값을 알 수 있도록 해줘야 됨. 따라서 각각의 경우는 if ~ else-if ~ else로 분기문을 걸어서 처리해주겠음. 1. 유저가 없을 때 modelAndView의 setViewName을 로그인으로 리다이렉트 시켜주고 2. 이름이 null이 아닐 때 이름이 널리 아니라는 것은 그 이름에 잠깐 서비스..

    Exception : Invalid bound statement (not found)

    Mybatis 오류로 Mapper 인터페이스와 XML의 불일치 XML id 부분의 오타가 발생하거나 공백이 들어가 있을 경우 발생. 또는 application.property에 XML의 경로를 잘못 작성한 경우. 우선 여기까지 체크해보고 그래도 안되면 구글링을 하면서 추가적으로 작성.

    Cookie

    우리가 각종 사이트에 로그인했을 때 쿠키로 서버가 로그인 여부에 관해 기억을 해줄 수 있다. 쿠키를 통해 세션의 값이 들어가지는 과정은 다음과 같다. 위의 사진으로 설명해보겠다. 이름 : [JSESSIONID] 콘텐츠 : F7DBD1493FD2FD3BB5FA353CA8BA913A HashMap sessionStroage = ?; HashMap sessinValues = ?; sessionValues.put ("user",user); sessionStroage.put("F7DBD1493FD2FD3BB5FA353CA8BA913A", sessionValue); F7DBD1493FD2FD3BB5FA353CA8BA913A.get("user") -> UserEntity user 위의 코드처럼 세션의 값이 들어가진 ..

    Dynamic Enum

    Enum의 경우 컴파일 타임에 수행되는 기능이므로, Enum을 직접 동적으로 처리하도록 할 수는 없다. 해결책은 Enum과 비슷한 또 다른 클래스를 작성하는 것! Enum은 그 자체가 클래스이다. 그래서 Enum의 기능을 모방하지만 일반 클래스이므로 상속을 받아 Dynamic 한 기능을 하게 해도 록 해줘야 함. 만드는 방법은 Enum에 클래스를 상속받도록 해주면 된다. 내가 만약 IResult라는 Enum을 만들었다면 이러한 IResult를 상속받아 처리해주면 된다. Enum //타입 변수에 모든 타입을 사용할 수 있음.

    intelliJ soft-wrap 설정

    해당 방법은 윈도우 기준입니다. 1. View -> Active Editor -> soft-wrap 설정 2. 쉬프트 두번 누르고 soft 검색하면 soft-wrap이 뜸 on 눌러주기 위에 두가지 방법은 default 값이 아니다. default 값으로 항상 soft-wrap을 지정해주려면 컨트롤+알트+s 누르고 Editor -> General -> Soft-wraps의 항목 부분 -> Soft-wrap these files: 에다가 ; * 를 추가 적용해주면 항시로 soft-wrap 설정 가능

    CryptoUtils

    1. 비밀번호를 설정할 때 필요한 단방향 암호화 메서드 만들기. 나중에 전역적으로 사용할 수 있기 때문에 utils라는 패키지 생성 -> CryptoUtils라는 클래스 생성 2. CrytoUtils 생성자를 private를 걸어서 접근을 제한함. 잘못된 값이 실수로 들어오는 경우를 막기. 3. 단방향 암호화의 종류는 여러 개가 있으므로 우선 enum으로 만들어 주기. 4. 해싱 과정을 처리할 메서드 만들기. 5. 각각의 경우에 대한 메서드 오버로딩. public class CryptoUtils { public enum Hash { MD5("MD5"), SHA_256("SHA-256"), SHA_512("SHA-512"); public final String algorithm; Hash(String al..

    Mapper 파일 생성

    1. mybatis dtd 검색 -> mybatis.org -> 복사하고 붙여 넣기 2. Settings에서 설정 (컨트롤+알트+s)