본문 바로가기

분류 전체보기

(201)
JDBC Templete을 이용한 일정 관리 서버 CRUD 구현 Server 구조 일정 생성ScheduleRequestDto을 이용하여 생성 정보를 요청생성 날짜(created_at)와 수정 날짜(updated_at)는 서버의 Repository단에서 LocalDateTime.now()를 사용하여 값을 넣어줌@Override public ScheduleResponseDto saveSchedule(Schedule schedule) { SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate); jdbcInsert.withTableName("schedule").usingGeneratedKeyColumns("id"); Map parameters = new HashMap();..
파이썬 알고리즘 연습(5) 시저 암호 처음 오답def solution(s, n): answer = "" for i in s: if i == " ": answer += " " elif i == "z" or i == "Z": answer += chr(ord(i) - 26 + n) else: answer += chr(ord(i) + n) return answer z만 처리해 줄 것이 아니라 나머지 문자도 범위를 초과해야 하는 경우 처리를 해 줘야 했음 정답ord() : 아스키코드값으로 변경해줌 -> 파이썬은 c언어와 다르게 명시적으로 함수를 사용해야 함chr() : 아스키코드를 문자로 변경def solution(s, n): ..
일정 관리 서버 만들기 설계 (API 명세서, ERD 작성) API 명세서  DTO 목록ScheduleSaveRequestDto{ "content": string, “author”: string, “password”:string,} ScheduleUpdateRequestDto{ "content": string, “author”: string, “password”:string,} ScheduleResponseDto{ "id": Long, "content": string, “author”: string,} 성공Status Code 201 Created실패404 NotFoundScheduleListResponseDto[ { "id": Long, "content": string, “author”: string }, { "id": Long, "content": string..
DTO를 사용하는 이유 DTO?Data Transfer Object, 즉, HTTP 메시지를 전달하고 스프링에서 계층간의 데이터를 전달할 때 사용하는 객체 DTO의 사용 이유1. Entity와 DTO의 책임을 명확하게 분리하기 위함Entity는 ORM을 해주기 위한 객체DTO는 계층간의 데이터를 전송해 주기 위한 객체 & Client에게 Entity정보를 숨기기 위함 -> DTO 대신 Entity를 사용하게 된다면 Entity가 가지고 있는 민감한 정보(주민번호, 비밀번호,,)가 노출 될 수 있음 2. DB 구조가 변경됐을 때 코드의 유지보수에 용이하기 위함 예시MemberController@RestController@RequiredArgsConstructor@RequestMapping("/api/member")public c..
파이썬 알고리즘 연습(4) 1. 먼저, 세로가 가로보다 더 크다면 명함을 돌린다 2. 돌린 후에 가로와 세로의 최댓값을 찾는다 def solution(sizes): rotated = [] # 가로, 세로 길이 중에서 더 긴 값을 가로로 두기 -> 돌린다 for i in sizes: if i[0]
모듈, 프레임워크, 라이브러리, API 차이 모듈 : 특정 기능을 수행하는 코드 집합 (함수)패키지 : 관련된 모듈을 분류하는 방법라이브러리모듈의 집합,그림을 그리고 싶어서 붓, 물감, 스케치북같은 여러 미술 도구를 가지고 그림, 이때 추적으로 어떤 미술 도구들을 가져오는 것은 나의 자유!프레임워크애플리케이션을 개발하는데 사용되는 구조소프트웨어 개발을 간편하게 만들기 위한 소프트웨어 개발 환경비지니스 로직에 집중할 수 있음나는 화가, 주어진 양식대로 그림을 그려야 하고, 이를 벗어나면 안 된다! 이 그림 양식을 따르면 나는 훌륭하고 가치있는 그림을 그릴 수 있다!API도서 SNS를 만들고 싶은데, 시중에 나온 책들의 정보들을 내가 수집해서 가져오기는 너무 어렵고 복잡함 -> 내가 원하는 책 정보와 갯수를 담은 도서 정보 내역을 작성하고 이를 대신 ..
Web Application / WAS / Servlet Web Server정적 리소스(HTML, CSS, JS, 이미지) 제공Application 로직을 포함할 수 있지만 특화는 WAS WAS(Web Application Server)웹 서버의 기능 포함 + Application 로직 수행 + DB와 상호작용 => 동적 컨텐츠 생성 (톰켓,,)Java에서는 Servlet Container 기능을 제공하면 WAS 실제 웹 시스템 구성정적은 웹 서버, 동적은 WAS웹 서버는 오류가 날 일이 적이 때문에 오류 화면을 보여줄 수 있음 Servlet만약, 로그인을 할 때 실제로 전달되는 데이터는 아래처럼 HTTP메시지로 주고 받아짐 -> 그렇기에 서버는 서버와 TCP/IP 연결....부터 시작하면서 HTTP Message와 관련된 작업과 비지니스로직, 연결 등을 해 ..
TCP, UDP/ 브라우저에 URL 입력시 발생하는 일 / HTTP 네트워크 기본 기식인터넷 : 컴퓨터 네크워크 통신망ip : 인터넷 프로토콜, 즉 통신 규약, ip주소는 ip에 필요한 고유 주소인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달 TCP신뢰성 통신이라 생각하면 됨, 키워드는 신뢰! -> 데이터 잘 받았어요!, 패킷 순서보장해요! 3 Way HandShake 수행, syn보내면 ack로 잘 받았다고 응답하는 과정, ack는 잘받았고 너의 요청을 수락한다는 의미, 그래서 클라이언트는 ack와 함께 데이터를 전송함 -> 이 과정을 통해서 신뢰성을 보장하지만 대신 시간이 오래걸린다 ㅜㅠ UDPTCP랑 반대라고 보면 됨, 비신뢰성 비연결성 하지만!  3Way HandShake가 없기때문에 속도가 빠름데이터 무결성 검사하는 체크섬(Ch..