ingwon의 등록된 링크

 ingwon로 등록된 티스토리 포스트 수는 16건입니다.

[백준/파이썬] 1789번 수들의 합 [내부링크]

import sys s = int(sys.stdin.readline()) def solution(): res = 0 i = 1 global s while s > 0: s -= i if s >= 0: res = i i += 1 return res print(solution()) 문제 정리 서로 다른 N개의 자연수의 합이 S이 되게하는 수 풀이 과정 # 1. s에서 i를 하나씩 빼준다 # 2. s의 수가 0보다 크거나 같다면, 결과값을 넣어주기 # 3. s에서 i를 뺏을 때 s

[백준/파이썬] 1946번 신입 사원 [내부링크]

import sys case = int(sys.stdin.readline()) arr = [] def count(arr): arr.sort() cur = arr[0][1] cnt = 1 for i in range(1, len(arr)): if cur > arr[i][1]: cur = arr[i][1] cnt += 1 return cnt res = [] for _ in range(case): num = int(sys.stdin.readline()) arr.clear() for _ in range(num): score1, score2 = map(int, sys.stdin.readline().split()) arr.append((score1, score2)) res.append(count(arr)) for x..

5주차 WIL [내부링크]

08.06 ~ 08.11 이번주차에서는 가장 기본적인 Jwt를 이용하여 사용자들을 식별하고, 가장 기본적인 CRUD 기능들과 이미지 업로딩 기능들을 구현해보았다. 4주차에서는 세션으로 로그인을 진행하고 쿠키로 사용자들을 식별했지만, 이번주차에서는 Access Token과 Refresh Token으로 사용자들을 식별하였다 다음은 이번주차에 주의를 기울였던 Jwt에 대한 정리이다 JWT의 사용방식은 - 로그인 정보를 Server 에 저장하지 않고, Client 에 로그인정보를 JWT 로 암호화하여 저장한다 → JWT 통해 인증/인가 따라서, 모든 서버에서 동일한 Secret Key를 소유하게된다 Secret Key 통한 암호화 / 위조 검증 (복호화 시) JWT 장/단점 장점 동시 접속자가 많을 때 서버 측..

Security와 OAUTH 이용한 로그인서비스 [내부링크]

이번에 진행했던 프로젝트는 저번 3주차에서 진행했던 네이버 검색 API를 이용해 관심있는 상품들을 조회하고, 관심있는 상품들을 모아보기에 등록하는 과정을 확장하여, security의 세션을 이용하여 로그인 서비스를 구현하고 UserDetails를 이용하여 사용자를 식별하여 로그인한 사용자들이 등록한 상품들만 각각 조회가 되게 하였다. 또, 단순히 구현만 하지 않고, TDD를 작성하여 단위테스트를 진행하려고 하였고 마지막에는 AOP를 통해 예외처리를 해주는 등의 보수과정도 진행하였다. 아래는 이번주차에서 진행했던 프로젝트의 일부이다 GitHub - ingwon97/loginservice Contribute to ingwon97/loginservice development by creating an acco..

[Spring] Jwt를 이용한 로그인과 게시판의 기능들 [내부링크]

이번 프로젝트는 저번주에 만들었던 Jwt를 이용해서, access token과 refresh token을 발행하게 되면 해당 토큰들을 가지고 사용자들을 구별하게 하였다. 내가 이번에 구현했던 기능들은 다음과 같다. 게시글을 작성할 때는 이미지 파일과, 원하는 내용들을 String으로 dto에 전달하여 후에 JSON으로 변환 하였다 이미지 업로드 방식은, IAM을 통해 S3의 권한을 부여한 후에 이미지를 S3에 저장하고, 해당 URL의 값을 Post의 imageUrl 변수에 저장해준 뒤, 관련 내용들을 함께 저장해주었다. String으로 dto에 전달하여 후에 Json으로 변환하는법

[백준/파이썬] 10828번 스택 [내부링크]

잘못된 예 import sys n = int(input()) result = [] for _ in range(n): data = list(input().split()) if data[0] in 'push': result.append(int(data[1])) elif data[0] in 'pop': if result: print(result.pop()) else: print(-1) elif data[0] in 'size': print(len(result)) elif data[0] in 'empty': if not result: print(1) else: print(0) elif data[0] in 'top': if result: print(result[-1]) else: print(-1) 처음에는 간단히 ..

[스프링] 이미지 업로드 + JSON 형식으로 데이터 보내기 [내부링크]

Controller @RequiredArgsConstructor @RestController public class PostController { @RequestMapping(value = "/api/auth/post", method = RequestMethod.POST) public ResponseDto createPost(@RequestParam("dto") String dto, @RequestParam("images") MultipartFile images, HttpServletRequest request) throws JsonProcessingException { PostRequestDto requestDto = new ObjectMapper().readValue(dto, PostRequestDt..

4주차 WIL [내부링크]

7.29 ~ 8.5 이번주에는 본격적으로 Spring의 심화적인 이론을 학습했다. 각 일차에 따라 요약한 커리큘럼은 다음과 같다 1일차 스프링의 Controller, Service, Repository 각 역할을 이해한다. 스프링 MVC 를 이해하고 사용법을 익힌다. 스프링 IoC 컨테이너 / DI 의 핵심개념을 이해한다. 2일차 웹의 인증 및 인가의 개념 이해 스프링 시큐리티를 이용해 폼 로그인 기능을 구현 스프링 시큐리티 OAuth2 를 이용해 소셜 로그인 기능 구현 JWT 로그인 기능 구현 3일차 JUnit을 이용한 단위 테스트 Edge 케이스를 고려한 단위 테스트 Mock object 직접 구현을 통한 단위 테스트 Mockito mock을 사용한 단위 테스트 통합 테스트란 스프링 부트를 이용한 통..

동국대 Capstone Design AR Navigation [내부링크]

GitHub - ingwon97/capstone: AR 네비게이션 졸업작품 AR 네비게이션 졸업작품. Contribute to ingwon97/capstone development by creating an account on GitHub. github.com

3주차 WIL [내부링크]

7.22 ~ 7.28 이번주차는 Spring의 기본원리들에 대해서 학습했다. Spring에 관해서는 이전에 인프런에서 들었던 인터넷 강의가 있었지만, 아무래도 개념만 전개하는식이고 활용하는 부분이 많이 부족하다보니 실전 경험이 많이 부족한거 같아 다른 인강에서 학습을 하였다 학습 순서는 Spring의 구성원리와 Controller, Service, Repository, Spring MVC, JPA 등 여러 개념들의 원리에 대해서 이해하고 직접 구현해보았으며, 더 나아가 네이버 쇼핑 검색 API를 이용하여 상품 검색 기능을 만들고 AWS에서 RDS를 이용하여 mysql에 데이터들을 저장하였고, EC2를 이용하여 서버를 베포하는 작업까지 진행을 하였다. 이번 주차에서는 중요하게 배웠던 것은 의존성 주입(DI..

JPA [내부링크]

JPA, RDBMS, Repository 스프링은 자바로 작동하고, 데이터베이스는 SQL로 작동합니다. 스프링과 SQL이 서로 데이터를 주고받을 수 있는 번역기가 필요한데 그것을 JPA라고 합니다. JPA JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기입니다. Java로 코드를 작성하면 SQL로 번역해줄 뿐만 아니라, 기본적인 기능이 거의 완벽하게 들어있습니다 Repository는 데이터를 접근할 때 사용하는 하나의 도구 Repository는 JPA를 작동시키는 매개체입니다 RDBMS RDBMS란? RDBMS(Relational DataBase Management System)는 컴퓨터에 정보를 저장하고 관리하는 기술입니다. MySQL PostgreSQL Or..

웹서비스의 구조 [내부링크]

웹 서비스 웹서비스는 서버, 클라이언트, DB영역으로 이루어져있습니다 클라이언트는 사용자가 보는 화면을 의미 ex) 웹의 경우 크롬 브라우저나 사파리 익스플로러, 앱의 경우 앱 자체가 해당됩니다 서버 - 우리가 원하는 데이터가 있는 곳이고, 원하는 데이터를 요청하면 이에 응답해주는 곳이기도 합니다. Controller, Service, Repository로 나누어져있습니다 API - 서버와 클라이언트가 서로 상호작용하는 약속의 창구입니다. 정해진대로 요구를 하면, 정해진 결과물을 돌려주는 창구이죠. 우리가 보는 웹페이지는 모두 서버에서 미리 준비해두었던 것을 "받아서", "그려주는" 것입니다. DB - RDBMS, H2, SQL RDBMS, 줄여서 RDB는 관계형 데이터베이스를 말합니다. 정보 저장소를 ..

[Spring] Controller Service Repository 구현과 에러 처리 [내부링크]

이번에 프로젝트를 진행하면서, 기본적으로 Controller, Service, Repository를 만들면서 데이터를 호출했을 때 출력을 원하지 않는 데이터들은 출력하지않고(password) 원하는 데이터들만 출력해주었으며, 추가적으로 잘못된 데이터에 접근하게 될 때 에러가 발생하는 경우 에러처리를 원하는 데이터형태로 발생시키고자 하였다 프로젝트는 UI 구성없이, 기능만을 구현해보기 위해, 데이터는 ARC로 전송하였다 DomainController Controller의 전체 기능은 1. 전체 게시글 목록 조회 2. 원하는 게시글 조회 3. 게시글 작성 4. 비밀번호 일치 여부 확인 5. 게시글 수정 6. 게시글 삭제 순으로 구성했다 전체 게시글 목록 조회부분에서는 findAllByOrderByModifi..

2주차 WIL [내부링크]

07.15~07.21 이번주는 알고리즘을 공부하였다. 본격적으로 스프링을 공부함에 앞서, 알고리즘을 풀어보면서 자바에 대해서 익숙해지려고 하였고, 이번에도 나까지 4명의 팀원들과 초반에는 난이도가 쉬운 부분부터 하루에 8문제씩, 난이도가 상으로 올라가면서 하루에 4문제씩 풀어보고, 각자의 풀이법을 공유하였다. 알고리즘 공부는 프로그래머스로 진행되었다. 이전에는 백준으로 문제를 풀어보면서 공부를 했기 때문에, 프로그래머스는 처음이었는데, 프로그래머스에서는 백준과 달리 처음에 배열의 개수 n이 주어지지 않고 바로 매개변수에 배열이 주어지길래 어떻게 푸는거지 싶었지만, 금방 적응하였다. 이번주차는 알고리즘을 공부하면서 자바에 대해서 익숙해지기가 목표였지만, 내 코딩테스트에서의 주 언어는 파이썬이기 때문에, 파..

1주차 WIL [내부링크]

07.11 ~ 07.14 일지 이번주에 조원들과 함께 미니 프로젝트 팀을 꾸렸다. 초반에는 어색한 분위기가 있어서 낯설었지만, 프로젝트를 목적으로 꾸려진 조원들이었기 때문에, 프로젝트의 주제와 진행된 코드의 내용들에 관해 여러 이야기를 하다보니 자연스럽게 잡담도 하면서 금방 친해졌다. 프로젝트는 아침 9시부터 저녁 10시까지 비대면으로 진행되었고, 팀원들은 새벽까지도 진행하였다. 미니 프로젝트는 html과 css를 이용하여 프론트부분을 구성하고, MongoDB로 데이터를 저장하고 flask를 이용하여 웹서버를 구축하여 AWS로 배포하는 웹제작 미니프로젝트이다. 참고자료는 주어진 인강과 구글링으로 진행을 하였다. 회의를 하면서 계획을 세우게 된 주제의 내용은 "여행을 갔다오면서, 사람들이 리뷰를 남기고 싶..