전체글 137

코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문 TIL - 1장 스프링 부트 시작하기 ~ 2장 MVC 패턴 이해와 실습

✍학습 키워드 스프링 부트 시작하기 스프링 부트는 자바 기반 웹 서비스를 더욱 쉽고 편리하게 만들기 위해 개발된 도구이다. 스프링 부트에는 자바 웹 프로그램을 만들기 위한 기능과 도구가 모여 있다. JDK는 자바 코드의 번역과 실행을 담당하는 자바 개발 도구 스프링 부트의 개발 환경은 JDK 설치하기 → IDE 설치하기 → 프로젝트 만들기 과정을 거쳐 설정한다. MVC의 역할과 실행 흐름 이해하기 서버는 결국 모델, 뷰, 컨트롤러가 유기적으로 역할을 분담해 클라이언트의 요청을 처리한다. 웹페이지를 화면에 보여주고(View), 클라이언트의 요청을 받아 처리하고(Controller), 데이터를 관리하는(Model) 역할을 영역별로 나누어 하는 기법! 컨트롤러가 클라이언트의 요청을 받고, 뷰가 최종 페이지를 ..

[백준] 1292 쉽게 푸는 문제 (Python)

1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 배열 기본문제 생각나는대로 풀다보니까 코드가 길어진 감이 있다. 문제의 요구사항에 맞게 주욱 늘려쓴 느낌이다. A, B = map(int, input().split()) su = list() cnt = 0 i = 1 total = 0 su.append(0) for idx in range(1001): su.append(i) cnt += 1 if cnt == i: cnt = 0 i += 1 for i in range(A, B + 1): total += su[i] print(total)

3. 하지않는 삶

유튜브에서 책 읽을때 듣기 좋은 음악 플리를 찾아서 들었는데, 영상에 있던 책이 이 책이었다. 표지라던가 책긁귀라던가 그런게 좋아서 사보았는데, 이럴수가 플리 올린 유튜버 본인이 쓴 책이었던 것이었던 것이었다. 홍보를 참 신박하게 잘 하신거 같다는 생각이 들었다. ㅎㅎ 아무튼, 책 내용은 무엇인가를 하기 위해선 하지말아야 할 것을 먼저 정해야하고, 뭐 인생에도 시적허용을 할 수 있는 시간을 주어야 한다는 이야기와, 자신의 일기를 보여주는듯한 에세이 같은 글이 주를이루었던것 같다. 요새 이런 책이 유행이었던것 같은데, 처음읽어본다. 내 취향과는 조금 거리가 있었지만, 새로운 방향의 책이었던거 같고, 글이 정갈해서 편하게 죽 읽었던것 같다. 커피한잔 홀짝이면서 가볍게 읽기에 좋았던 책인것 같다.

2. 비전공자를 위한 이해할 수 있는 IT지식

네이버클라우드 개발자 과정을 이수하고 있을때, 비전공자인 앞자리 학우의 책상에 이 책이 있는걸 보고 호기심이 갔었다. 당시에는 시간이 모잘라 읽지않았고, 최근에 여유가 생겨 빌려보았다. 기획자인 저자가 개발자랑 대화하며 혹은 개발을 배우며 개발자와 커뮤니케이션을 하기 위한 지식들을 쉽게 풀어써주었다. LAN, MAN, WAN의 차이라던가, 프론트와 백 차이라던가 말이다. 4년동안 전공을 한 나에게는 어렵지 않은 주제였으나, 팀프로젝트를 하며 팀장으로써 비전공자인 팀원들에게 내가 바라고자 하는 바를 이해시켜줘야하는 순간들이 많았었다. 이때 이해가 안간다고 역정을 낼게 아닌 조금 더 상대의 입장에서 바라보게해주는 책이었던거 같다. 가볍게 읽기 괜찮았다.

1. 이동진 독서법

공부하려고 도서관에 갔는데, 벽에 붙어있는 이달의 추천책? 에 이책이 있는걸 보았다. 평소 이동진 평론가에 대한 호감이 있던 터라, 읽어보고 싶어서 바로 대출하러 갔고, 코너에서 찾아봤는데 없길래 뭐지 이도서관 하다가 옛날 도서 코너에 있어서 오 내가 바보인거를 깨달았었다. 저자는 자신의 독서 습관을 그냥 옆에있는 사람에게 알려주듯이 설명해준다. 내가 볼때 결론은 하나인것 같다. 책을 읽으려면 즐거워야 할것. 또한 읽은 책에 대해 남들이랑 대화하거나 아니면 글로 감상을 남겨서 다양한 시야를 갖출 것. 요즘들어 한 2~3개월 정도 운동을 열심히한다. 거의 매일 빼먹지 않고 1시간 30분 ~ 2시간 정도를 하는거 같은데, 처음의 동기는 좀더 자신감을 얻고 자신을 가꾸기 위해서 였으나, 요즘은 그냥 운동하는게..

스프링 부트 핵심가이드 TIL - 11장 (Spring Security)

✍학습 키워드 서비스의 인증과 권한 부여 스프링에 보안을 적용할 때 사용하는 스프링 시큐리티에 대해 알아보자 스프링 시큐리티 애플리케이션의 인증, 인가 등의 보안 기능을 제공하는 스프링 하위 프로젝트 중 하나이다. 보안과 관련된 많은 기능을 제공하기 때문에 보안 관련된 기능을 더욱 편리하게 설계 할 수 있다. 서블릿 필터(Servlet Filter)를 기반으로 동작하며, DispatcherServlet 앞에 필터가 배치되어 있다. 클라이언트에서 애플리케이션으로 요청을 보내면 서블릿 컨테이너는 URI를 확인해서 필터와 서블릿을 매핑한다. 스프링 시큐리티는 사용하고자 하는 필터체인을 서블릿 컨테이너의 필터 사이에서 동작시키기 위해 DelegatingFilterProxy를 사용한다. JWT(JSON Web T..

스프링 부트 핵심가이드 TIL - 10장 (서버 간 통신)

✍학습 키워드 서버 간 통신 RestTemplate와 Webclient에 대해 학습 RestTemplate? 스프링에서 HTTP 통신을 손쉽게 사용하도록 설계 된 템플릿. RESTful 원칙을 따르는 서비스를 편리하게 만들 수 있다. 기본적으로 동기 방식으로 처리되며, 비동기를 원할땐 AsyncRestTemplate사용. 📝새로 배운 개념 RestTemplate 구현하기 일반적으로 RestTemplate는 별도의 유틸리티 클래스로 생성하거나 서비스 또는 비즈니스 계층에 구현된다. 서버 프로젝트에 요청을 날리기 위해 서버의 역할을 수행하면서 다른 서버로 요청을 보내는 클라이언트의 역할도 수행한다. RestTemplate를 사용하는 방법중엔 UriComponentsBuilder를 사용하여 파라미터를 연결해서..

스프링 부트 핵심가이드 TIL - 9장 (액추에이터)

✍학습 키워드 액추에이터 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 활용해 애플리케이션을 모니터링하고 관리할 수 있는 기능을 제공한다. JMX(Java Management Extensions)는 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API이다. 액추에이터를 추가하면 기본적으로 엔드포인트 URL로 /actuator가 추가되며 이 뒤에 경로를 추가해 상세 내역에 접근한다. 엔드포인트는 활성화 여부와 노출 여부를 설정할 수 있는데, 활성화는 기능 자체를 활성화 하는지 결정하고, 비활성화된 엔드포인트는 애플리케이션 컨텍스트에서 완전히 제거된다. ## 엔드포인트 활성화 management.endpoint.shutdown.enabled = true managemen..

스프링 부트 핵심가이드 TIL - 8장 (유효성 검사와 예외처리)

✍학습 키워드 유효성 검사와 예외처리 비즈니스 로직이 올바르게 작동하려면 데이터를 사전 검증하는 작업이 필요하다. 이를 유효성 검사 또는 데이터 검증이라 부른다. 자바에서 가장 신경 써야 하는 것 중 하나로 NPE가 있다. 일반적인 애플리케이션 유효성 검사의 문제점 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스별로 분산돼 있어 관리하기가 어렵다. 검증해야 할 값이 많다면 검증하는 코드가 길어지므로, 코드가 복잡해지고 가독성 떨어진다. 예외 처리 스프링 부트의 예외 처리 방식 웹 서비스 애플리케이션에서는 외부에서 들어오는 요청에 담긴 데이터를 처리하는 경우가 많다. 그 과정에서 예외가 발생하면 예외를 복구해서 정상으로 처리하기보다는 요청을 보낸 클라이언트에 어떤 문제가 발생했는지 상황을 전달하는 ..

스프링 부트 핵심가이드 TIL - 7장 (연관관계매핑)

✍학습 키워드 연관관계매핑 RDBMS를 사용할때엔 테이블 하나만 사용해서 애플리케이션의 모든 기능을 구현하기란 불가능하다. 주로 조인을 사용하는데, JPA에서도 연관관계를 표현할 수 있다. One To One: 일대일(1:1) One To Many: 일대다(1:N) Many To One: 다대일(N:1) Many To Many: 다대다(N:M) 등이 있다. ⇒ 어떤 엔티티를 중심으로 연관 엔티티를 보느냐에 따라 연관관계의 상태가 달라진다. 영속성 전이 (데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성) 영속성 전이(cascade)란 특정 엔티티의 영속성 상태를 변경할 때 그 엔티티와 연관된 엔티티의 영속성에도 영향을 미쳐 영속성 상태를 변경하는 것을 의미한다. 📝새로 배운 개념..