오답노트 13

회원정보 수정 후 프사 안뜨던 이유

잠깐 해당 코드의 흐름에 대해서 설명하자면, 이 과정을 통해서 서비스는 어떤 데이터의 값들을 변경하고, 그 변경된 데이터를 반환한다. 풀어서 설명하자면,해당 메소드 editItem은 진행하는 과정속에서 값의 참조 복사 뭐 이런거 전혀 없고,진짜 받은 변수대로 SQL UPDATE 구문을 처리를 시도하고, 그 과정이 잘 처리가 되면, UPDATE를 처리하기 위해 받은 그 변수값들 그대로 SELECT문을 돌려서 받은 값을 반환한다. 그래서 아래의 코드에서 output에 들어가게 되는 값은,멤버 서비스의 editItem()  메소드에 member 객체를 파라미터로 넣었을때,editItem이 SQL Update 처리를 하고 난 뒤,Update 처리를 할 때 쓴 변수 값으로 Select처리를 하여 나온 값이 반환되..

char 타입의 변수를 String으로 바꾸었을 때.

다만, 이 위의 사진에서, M과 F 값 자체는 잘 가져오고 있었음.Thymeleaf에서 char타입에 대한 비교 연산을 지원하지 않을 뿐,값 자체는 잘 읽어왔다는 말. 저 위의 에러가 나온 이유는,아무리 gender가 char 타입이였던 것을 String으로 수정하기 위해관련된 내용을 Spring 프로젝트에서 수정했다 하더라도,해당 내용이 저장된 MySQL 의 db세션 정보를 저장하는 spring_session에는,모델 객체가 char 타입으로 되어있던 내용이 남아있기에,해당 내용과 발생하는 충돌로 인하여서 로그인이 튕기는 것. 그러기에 spring_session 테이블의 내용을 비워야 한다. spring_session_attributes의 내용은 고치지 않아도 되는 이유가,해당 테이블은 spring_s..

로그인 갱신시간

@Override public Member login(Member input) throws Exception { Member output = null; try{ output = memberMapper.login(input); if(output==null){ throw new Exception("아이디랑 비번은 기억해야지 서비스라는 것을 쓸 수 있다 맨이야"); } }catch(Exception e){ log.error("Member 데이터 조회에 실패했습니다.", e); throw e; } // 데이터 조회에 성공했다면 마지막 로그인 시각을 갱신. try{ int ..

mapper에서 조건태그로 sql 구문 만들기

08-08 database 에서Q1.지금 코드의 진행과정에서, 하나의 키워드를 각각 name 과 userid 값으로 넣어주고 있어. 즉, name의 값이 있으면, userid에도 똑같은 값이 있고, name의 값이 없으면, userid도 똑같이 값이 없어. 이런 상황에서, "name LIKE CONCAT ('%', #{name}, '%') " + "OR userid LIKE CONCAT ('%', #{userid}, '%') " + 이 조건에 name 과 userid에 값이 "교수이름" 으로 할당되었다고 쳤을때, 이건 or 연산자이기 때문에 둘 중 하나라도 걸리는 값이 있다면 출력하게 되는 것이지?   A1. 네, 맞습니다. 주어진 코드에서 name과 userid에 모두 "교수이름"이라는 값이 할당되어 ..

08-11 FileHelper 헷갈린 부분

if(saveFile.substring(0,1).equals("/")){ // mac, linux용 경로처리 thumbnailPath = saveFile.replace(uploadDir, ""); } else { // windows용 경로 처리 -> 설정 파일에 명시한 첫 글자(/)를 제거해야 함 thumbnailPath = saveFile.replace(uploadDir.substring(1), ""); }이 코드가 어째서 윈도우와 리눅스 계열 os로 구분하는 코드가 되는거지?FileHelper.java:337-343   A1.GitHub Copilot 사용된 1 참조해당 코드는 saveFile 경로의 첫 글자가 '/'인지 확인하여 운영체제에 따라 경로 처리를 다르게 하고 있습니다. if(saveFil..

Spring으로 파일 업로드시, @Value로 주소 설정 오류의 경우

컨트롤러에서 @Value로 가져올 어플리케이션 프로퍼티즈에서,"${가져올 값}"형식으로 지정해야 하는데,$를 지정하지 않으면, 당연히 값을 가져오지 못한다....  에러 로그에는 item.fieldName을 가져오지 못한다고 뜨기에, 수정이 어려웠다.     애초에 경로가 잘못되어서 못 가져왔으니, 값도 가져오지 못했던 것...   ???그런데, WebHelper의 redirect 메소드에서,out.println("alert('" + message.replace("\\", "\\\\") + "');"); 이 코드는 왜 고치셨는지 모르곘지만,하여튼 이 코드를 고치고 나니,입다물고 튕기던 브라우저가알럿 창으로 띄우고 뒤로 튕기게 되었다.???