본문 바로가기

전체 글322

스프링 컨테이너를 다루는 방법 이번 수업은 스프링 컨테이너를 다루는 방법!이다. 스프링 컨테이너 스프링 빈이 무엇인지? 배웠었는데 이번 수업은 스프링 빈을 등록하고 가져오는 방법을 배워볼 차례이다. 먼저 빈을 등록하는 방법이다. 빈을 등록하는 방법으로는 @RestController @Service @Repository 외에도 @Configuration과 @Bean 어노테이션이있다 이둘은 셋트인데 먼저 @Configuration 👉 Class에 붙이는 어노테이션 @Bean을 사용할 때 함께 사용해 주어야 한다. @Bean👉 메소드에 붙이는 어노테이션 메소드에서 반환되는 객체를 스프링 빈에 등록한다. 백문이불이여일타 직접 UserRepository에 @Bean을 사용해보겠다. 원래는 @Repository 어노테이션을 통해서 빈으로 등록했.. 2023. 6. 7.
게시판에서 비밀번호 변경해보기 학원에서 수업하다가 잠깐 내주신 과제인데 못풀어서 안까먹으려고 다시 적는다. 로그인 후에 마이페이지에서 비밀번호를 변경하는 jsp를 만드는 과제인데 손놓고 아무것도 못했다. 화딱지 나서 복습겸 다시 적어 보겠다. 머릿속 기본구상은 이러했다. 로그인->마이페이지->비밀번호 변경 버튼 클릭->기존 비밀번호 입력-> 새로 사용할 비밀번호 입력과 새로 사용할 비밀번호를 재입력하여 확인 과정 거치기 -> 완료되면 완료되었다는 이벤트와 함께 info.jsp로 이동 먼저 pwd_update.jsp/pwd_updateform.jsp라는 이름의 jsp파일을 만들어 주었다. 그 안에 코드 작성부분을 쭉 적어보겠다. 먼저 기존 비밀번호와 새 비밀번호를 입력할 pwd_updateform.jsp form을 작성해 주겠다. 비밀.. 2023. 6. 7.
알고리즘 컴퓨터 공학에서 알고리즘은 문제를 해결하기 위한 절차 또는 계산 과정을 설명하는 단계적인 방법이다. 알고리즘은 주어진 입력에 대해 원하는 출력을 생성하는 명확하고 효율적인 방법을 제공한다. 이 알고리즘은 프로그래밍 언어로 구현되어 컴퓨터에서 실행 될 수 있다. 1. 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)👉 알고리즘의 성능을 분석하는 데 사용되는 두 가지 주요 개념이다. 시간복잡도는 알고리즘이 문제를 해결하는 데 걸리는 시간을 분석한다. 일반적으로 Bing O표기법을 사용하여 표현된다. 예를 들어, O(n)은 입력 크기n에 대해 선형 시간 복잡도를 나타낸다. 공간 복잡도는 알고리즘이 필요로 하는 메모리 공간의 양을 분석한다. 마찬가지로 Bing O표기법을 .. 2023. 6. 7.
20230607 수업내용2🤷‍♀️🤷‍♀️🤷‍♀️🤷‍♀️ 비밀번호를 수정하는 페이지를 만들어보는 시간이다. 먼저 비밀번호를 수정할 form을 만들어준 후에 비밀 번호 수정 페이지 기본 비밀전호 새 비밀번호 새 비밀번호 확인 수정하기 다시수정 javascript 부분에는 수정하기 button을 눌렀을 때 폼에 submit 이벤트가 일어났을 때 실행할 함수를 등록한다. .preventDefault는 실행이 되면 입력한 내용이 폼에 적용되지 않도록 막아준다. 이제 pwd_update.jsp를 만들어 session scope에서 수정할 회원의 아이디를 읽어오고 폼에 전송되는 구,새 비밀번호를 읽어온다. 그리고 현재 비밀번호도 읽어온다. //session scope 에서 수정할 회원의 아이디를 읽어온다. String id = (String)session.getAttri.. 2023. 6. 7.
20230607 수업내용🫡🫡🫡 정규 표현식 객체 만드는 방법 1. let reg = /표현식/; 2. let reg = new RegExp("표현식"); let isMatch = reg.test(검증할 문자열) bootstrap에 있는 기능중 form-floating을 활용해 효과를 넣어 주어보았다. 이 form-floating을 사용할 때에는 placeholder를 꼭 써주어야한다. 지난 시간에 board_file이라는 테이블을 만들어 자료실 목록을 구현하는 테이블을 만들어 보았다. 이번 시간에는 다운로드를 하는 페이지르 만들어 볼 것이다. 먼저 GET방식 파라미터로 전달되는 다운로드 시켜줄 파일의 번호를 읽어온다. int num = Integer.parseInt(request.getParameter("num")); 다운로드 시켜주.. 2023. 6. 7.
2진법 2진법은 컴퓨터 과학에서 중요한 개념이며, 컴퓨터 시스템에서 정보를 표현하는데 사용된다. 이진법은 0과 1 두가지 숫자만 사용하여 숫자를 표현하는 체계이다. 커뮤터는 전기적 신호로 이진법을 사용하여 데이터를 처리하고 저장한다. 2진법 기본 개념👉 2진접에서 각 자릿수는 2의 거듭제곱으로 표현된다. 가장 오른쪽 자리는 2^0(1), 그 다음은 2^1(2),2^2(4),2^3(8)...이다. 예를 들어, 숫자 10110은 1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 1 * 2^1 + 0 * 2^0 로 계산된다. 따라서 22를 2진법으로 나타낸 것이다. 10진법과 2진법 변환👉 10진법에서 2진법으로 변환하는 방법은 주어진 숫자를 2로 나누고, 나머지를 오른쪽에서 왼쪽으로 순서대로 적어가면서 게산한다.. 2023. 6. 7.
스프링 컨테이너를 왜 사용할까? 스프링 빈이 무엇인지 스프링 컨테이너가 무엇인지 알아보았다. 스프링 컨테이너는 서버가 시작될 때 함께 시작되는 Class를 담는 공간(컨테이너) 스프링 빈은 그 컨테이너에 담긴 Class 하나하나를 스프링 빈이라 불렀다. 이번에는 그런 스프링 컨테이너가 왜 탄생했는지? 왜 사용하는지에 대해 알아보겠다. 그러기 위해 다음 요구사항을 생각해보겠다. 예로 책 이름을 메모리에 저장하는 API를 매우 간단하게 구현하도록하겠다. 이때 Service, Repository는 Spring Bean이 아니어야 한다. 그럼 전체적인 그림은 위처럼 되는데 DB를 사용할 것이 아니기 때문에 BookMemoryRepository라 해두었다. 전체적인 느낌만 잡아보자 repository와 service package안에 user .. 2023. 6. 6.
UserController와 스프링 컨테이너 이번에는 한 함수에서 세가지역할을 하는 것을 Controller Service Repository로 역할에 맞게 나누어봤는데 UserController에는 의아한 점이 있었는데 이 두가지를 정리하자면 첫번째로 static이 아닌 코드를 사용하려면 인스턴스화가 필요 인스턴스화를 하려면 생성자를 호출하게 되는데 (public UserController) 생성자는 만들었지만 인스턴스화를 한적은 없었다. 두번째로 생성자를 호출하는 과정에서 UserController는 JdbcTemplate를 필요로 하고있다. UserController는 JdbcTemplate에 의존하고 있는데 이 의존이라는 것이 UserController는 JdbcTemplate이 없으면 동작하지 않는 다는 의미이다. 하지만 우리는 JdbcC.. 2023. 6. 5.
Layered architecture Layered architecture(이하 계층화 아키텍쳐) 계층화 아키텍쳐는 소프트웨어를 설계하는 방법 중 하나이다. 이 아키텍쳐는 시스템을 여러 개의 계층으로 분리하여 각 계층이 특정한 역할을 수행하도록 구성하는 것을 의미한다. 각 계층은 서로 상호작용하면서 전체 시스템을 구성한다. 계층화 아키텍처의 가장 일반적인 구성 요소는 다음과 같다. Presentation Layer(프레젠테이션 계층) 사용자 인터페이스(UI)를 담당한다. 사용자와의 상호작용을 처리하고, 입력을 받아 처리 결과를 출력한다. Application Layer(응용 계층 또는 비지니스 계층) 비지니스 로직을 포함하고 있다. 사용자의 요청을 처리하고, 데이터의 유효성 검사, 비지니스 규칙 적용 등을 수행한다. Domain Layer(.. 2023. 6. 5.