select *from table_namewhere 1=1 and user_id = 'id' and user_pw = 'pw' 보통 이런식으로 로그인을 짜게되면 SQL Injection의 위험이 있다 예를들어 로그인을 할 때 1=1 --을 넣게되면select *from table_namewhere 1=1 and user_id = 'id' or 1=1 -- and user_pw = 'pw'그냥 로그인이 되어버린다 그래서 아예 id만 가지고 데이터를 아래와 같이 가져온 뒤select *from table_namewhere 1=1 and user_id ='id' 컨트롤러에서 pw를 검증했다.HashMap retMap = new HashMap();HashMap u..
일단 이 오류를 검색하면 Maven Dependencies 추가를 안해서 생기는 오류라고 하는데,해당 프로젝트는 Maven을 사용하지 않았다.. https://js-note.tistory.com/entry/javalangClassNotFoundException-orgspringframeworkwebcontextContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener에러 발생 상황 국비학원을 다니며 만들었던 팀프로젝트 과제를 개선해보기 위해 github에서 clone을 진행했다. 그후 eclipse에서 서버를 실행하는 과정에서 발생한 문제이다. 에러 문구 해결 방법 1..
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 연결하려는 사이트의 인증서가 jvm의 신뢰하는 인증서 목록에 없어서 발생하는 문제. 만약 별도의 사내 보안장치가 없다면 아래 블로그를 따라하면 된다.[ERROR] unable to find valid certification path to requested target (tistory.com) [ERROR] unable to find valid certification ..
📖 책 내용 정리 🔶 8장 경계 1️⃣ 외부 코드 사용하기 프레임워크 제공자는 적용성을 최대한 넓히려고하고 사용자는 자신의 요구에 집중하는 인터페이스를 바라기 때문에 시스템 경계에서 문제가 생길 소지가 많다. 예를들어 Map의 경우 기능성과 유연성은 유용하지만 위험이 크다 → map을 만들어 넘기는 경우, 넘기는 쪽에서 Map을 삭제할 수 있다. → 사용자가 마음대로 어떤 객체 유형이든 추가 할 수 있다. (코드는 동작하지만 코드가 깨끗하지 않음) → 사용자에게 필요하지 않은 기능까지 제공한다. → map 인터페이스가 변할 경우 수정할 코드가 많이 생긴다. Map과 같은 경계 인터페이스를 이용할 때에는 이를 이용하는 클래스나 계열 밖으로 노출되지 않도록 주의해야한다. 2️⃣ 경계 살피고 익히기 외부코드는..
📖 책 내용 정리 🔶 7장 오류처리 1️⃣ 오류코드보다 예외를 사용하라 뭔가 잘못될 가능성은 늘 존재한다. 뭔가 잘못되면 바로 잡을 책임은 프로그래머에게 있다. if else 문을 통해 오류 코드를 반환하면 호출자 코드가 복잡해진다. → 함수는 호출한 즉시 오류를 확인해야 하기 때문에 오류가 발생하면 예외를 던지는 편이 좋다. 예외를 사용하게 되면 호출자 코드가 논리 오류 처리 코드와 섞이지 않아 깔끔해진다. 2️⃣ Try-Catch-Finally 문 부터 작성하라 try 블록에서 어떤 일이 생기든 catch 블록은 프로그램 상태를 일관성 있게 유지해야한다. 그러므로 예외가 발생할 코드를 짤 때에는 try-catch-finally 문으로 시작하는 편이 좋다. → try 블록에서 어떤 일이 생기든 호출자가..
List> test1 = new ArrayList>(); HashMap test2 = new HashMap(); // List> to HashMap for(Mapmap : test1) { test2.putAll(map); } 받아오는 데이터 형식과 보내는 데이터 형식이 달라서 부득이하게 List> 로 받은 데이터를 HashMap로 수정해야했다.위와 같이 for문을 돌려서 해결하면 된다.