본문 바로가기

CSあるある

추상화에 대한 정리(Feat. 객체 지향,oop) 추상화 : 여러 곳에서의 "공통된/중복된 [역할]"을 따로 뺌(SRP) -> 기대 효과 : 1] 개발/운영 중 요구 사항/코드 [변경]에 따른 클라이언트 코드 [변경]'의' 최소화(OCP)                  : 2] 단일 책임 원칙으로 인한 [코드 중복]'의' 최소화                     -> 개발/운영 중 요구 사항/코드 [변경]에 따른 개발자의 개발량/실수 감소.  EX) AppConfig 클래스   EX) Front Controller(Dispatcher Servlet) : 클라이언트에서 필요한 컨트롤러를 찾아 주는 [역할] ->Front Contrller를 만들기 전에는 개발자가 일일이 서블릿을 등록하였다.  그 역할이 개발자로부터 분리되었다.  객체지향 = 다형성 + .. 더보기
MVCC에 대한 오해 MVCC(Multi-Version Concurrency Control)는 단일 INSERT 쿼리라도 동작합니다. 이유는 MVCC의 본질이 트랜잭션의 유무와 상관없이 데이터베이스의 동시성과 일관성을 유지하기 위해 설계되었기 때문이다. 고로, "MVCC == 트랜잭션의 동시성과 일관성을 위한 것"이라는 것은 나의 오해 더보기
LinkedHashMap 단순한 HashMap은 insert한 순서를 보장하지 않는다. LinkedHashMap을 사용하면 insert한 순서를 보장한다. 물론 get의 순서도 보장!!LinkedHashMap regions = new LinkedHashMap();//LinkedHashMap을 사용하면 put한 [순서대로] 저장이 된다. regions.put("SEOUL","서울"); // 삽입 순서 1regions.put("BUSAN","부산"); // 삽입 순서 2regions.put("JEJU","제주"); // 삽입 순서 3 더보기
<label for=""> 과 name 속성(Feat. HTML) 상품명  for 속성의 역할for="itemName"의 역할은 태그와 태그를 연결하는 것입니다.for 속성의 값은 연결하고자 하는 태그의 id 속성과 동일해야 합니다.이렇게 하면 사용자가 을 클릭했을 때, 해당하는 요소로 포커스가 자동으로 이동합니다.이는 사용자 경험을 향상시키고 접근성을 높이는 데 중요한 역할을 합니다.위 코드에서는: 태그의 for="itemName"은 태그의 id="itemName"와 연결됩니다.결과적으로, "상품명" 레이블을 클릭하면 "이름을 입력하세요"라는 입력 필드에 포커스가 이동합니다.이 기능은 특히 키보드나 화면 읽기 프로그램을 사용하는 사용자들에게 유용합니다. name 속성의 역할name="itemName"의 역할은 FORM 데이터를 서버로 전송.. 더보기
javascript는 서버에서 절대 실행되지 않음 자바 스크립트는 웹 브라우저에서 실행이 되는 언어이다. 고로, 서버 사이드에서 타임리프가 렌더링 될 때 같이 실행되지 않고, 위 뷰가 웹 브라우저에 전달이 되면 그때 웹 브라우저가 실행이 된다. (서버 사이드에서는 타임리프 부분만 렌더링이 된다) 더보기
checked(Feat.html,thymeleaf) - checked=false = HTML의 경우, type=checkedbox인 경우 chcked="false"로 설정을 해도 아래와 같이 무조건 체크가 돼 있다. 그러나 타임리프를 사용하면 설정을 마음대로 조종할 수가 있다. - checked o = - checked x = 더보기
External Schema 데이터베이스에서 External Level은 사용자나 응용 프로그램이 데이터베이스를 어떻게 보는지를 정의하는 가장 상위의 뷰입니다. 쉽게 말해, 이는 데이터를 사용하는 개별 사용자 맞춤 뷰라고 생각하면 됩니다.더 쉽게 설명하자면:사용자 관점의 데이터 뷰데이터를 필요로 하는 사람이 원하는 형태로 제공됩니다.예를 들어, 직원 데이터베이스가 있다면:HR 팀: 직원 이름, 직급, 급여 정보만 필요.IT 팀: 직원 ID, 로그인 기록만 필요.각 팀이 보는 화면이나 데이터는 External Level에 의해 결정됩니다.추상화데이터베이스의 복잡한 구조(테이블, 관계 등)를 숨기고, 필요한 데이터만 보여줍니다.실제 데이터가 어디에 있고 어떻게 저장되어 있는지는 몰라도 됩니다.안전성사용자는 자신이 권한이 있는 데이터만 .. 더보기
Redirect의 사용(Feat. PRG(POST/Redirct/GET) 1] 중복 실행이 절대 실행되면 안 될 때 사용ex) 상품 등록(POST)을 완료한 후, 웹 브라우저에서 새로고침 버튼을 누를 때마다 상품 등록이 중복되버리는 심각한 문제가 있다.-> GET 메소드 URL로 웹 브라우저가 Redirect하게 만든다.   2] POST온 요청 URL을 처리한고, 똑같은 요청 URL의 @Getmapping으로 자동 호출하고 싶을 때!ex) 3] 서버에서 PR(POST/Redirection) 처리를 한 뒤, 웹 브라우저에서 GET URL을 호출한 결과 URL에 쿼리 매개변수(쿼리 스트링)을 보내고 싶을 때에 RedirectAttribute를 사용하면 된다. -> React, Vue.js를 사용하는 웹 클라이언트 개발자가 Redirction 후 뭔가의 정보를 필요로 할 때 쿼리.. 더보기