전체 글 21

2023/04/08 TIL

[MultiIt Backend] 서론 오늘부터 꾸준히 TIL을 작성할려고 한다. 그동안 지속적으로 개발을 하고 캠프도 듣고 학습을 지속했지만, 개인 노트북에 내용을 저장하는 것외에 작성을 하지 않았다. 그때 당시에는 학습을 하면서 나중에 완벽히 이해하고 한번에 정리하는 것, 프로젝트를 완벽히 완수하고 마지막에 내가 한번에 우리 프로젝트를 정리하면서 그동안의 과정을 정리하는 것이 더 도움이 되겠다고 생각을 했었다. 하지만 멘토링을 하고 다른 사람들을 보니, 우선 TIL을 작성하는것이 약간 꾸준한 나의 실력향상을 위해 나의 하루를 리뷰하는 느낌으로 받아 들일 수 있겠다 생각을 바꾸게 되었다. 그래서 나는 일기의 느낌으로 이제라도 꾸준히, 내가 개발에 관련해서 학습, 코딩, 프로젝트를 한다면 그 결과물은 나중..

기록/TIL 2023.04.08

spring 키워드 정리 3

Q1. API란 무엇인가? API란?(Applicaton Programming Interface) API는 정의 및 프로토콜 집합을 사용하여 두 소프트 웨어 구성 요소가 서로 통신 할 수 있게 하는 메커니즘이다. 예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있습니다. 휴대폰의 날씨 앱은 API를 통해 이 시스템과 “대화”하고 휴대폰에 매일 최신 날씨 정보를 표시한다. API는 어떻게 작동하나요? API 아키텍처는 일반적으로 클라이언트와 서버 측면에서 설명된다. 요청을 보내는 애플리케이션을 클라이언트라 하고 응답를 보내는 애플리케이션을 서버라고 한다. 다라서 날씨 예에서 기상청의 날씨 데이터베이스는 서버이고 모바일 앱은 클라이언트이다. API유형은 어떤게 있을까? 1) private..

[이노베이션 캠프]4주차 WIL

느낀점 이번주는 주특기 숙련 주차로 스프링으로 서버를 만드는 부분에 대해 더 깊이 알아보는 과정을 겪었다. 주특기 입문주차와 달리 한번 어느정도 개념을 잡고 간 다음이라 이해하는 부분에 대해서는 빨리 전반적인 개념과 알고리즘 자체는 이해했지만 역시나 실전으로 도입해 JPA와 JSP, JWT를 통해 사용자 인증을 통해 인증 된 사용자만 글 작성이 가능한, 회원가입, 로그인 API와 이를 서버에 적용해 기존의 기능들과 엮을려니 너무 헷갈리고 어려웠다. 기본적으로 개념을 잡았지만 아직 뒤죽박죽이고 정말 기초적인 부분만 잡힌거라 정작 중요하거나 필요한 부분이 어려웠고 원리는 이해가 되도 지속적인 오류에 스스로 노력을 더해야하는 구나 생각했다. 그러다가 정말 딱 어느정도 막히는 부분이 풀렸을때는 그 무엇보다 기뻤..

기록/WIL 2022.08.28

[이노베이션 캠프]3주차 WIL

느낀점 이번주는 저번주에는 앞으로 나의 주특기를 위한 언어를 공부했다면 드디어 주특기 spring을 접하고 시작하는 주특기 입문 주차였다. 나는 spring, 즉 백엔드를 선택했는데 어떤 것을 하는진 알고, db분석이나 각각 어떤 역할을 하는지는 대강은 아는데 이를 실제로 내가 해보는 것은 처음이였다. 아직 자바 문법이 완벽하지 않은 상태에서 강의를 들으며 따라하다보니 솔직히 어느정도 따라하고 만드는 것 까진 가능했으나 대강 각각 dto, service, repository, controller, model이 어떤 역할을 하고 서로가 연관되어 하나의 서버가 되어 실질적인 데이터나 동작들을 이루어지는 이런 전반적인 알고리즘은 이해할 수 있었다. 하지만 아무래도 나는 성격 상 뭔가 확실한 이해를 하지 못하면..

기록/WIL 2022.08.21

[이노베이션 캠프]2주차 WIL

느낀점 우선 이번주는 자신이 선택한 앞으로의 코딩을 위한 기본인 주특기 언어를 숙련하는 주차였다. 원래 나는 컴퓨터 공학과로써 몇년전에 자바를 해본 경험이 있으니 좀 더 쉽게 진행이 가능 할 줄 알았으나 거의 이삼년전 배울때 사용 했을 때 제외하고는 사용한 적이 없어서 생각보다 난황을 많이 겪었던 것 같다. 특히 쉬울줄 알았으나 팀별로 알고리즘 문제를 풀며 서로 스터디를 진행 할때 하루에 10개씩의 프로그래머스의 문제를 풀었는데 전반적으로 문제를 풀기 위한 알고리즘은 어느 정도 예전에 백준의 코딩 테스트로 풀어봐서 생각은 나지만 이를 C로써 밖에 안해봐서 처음에 자바 기초 문법이 아예 생각이 안나서 너무 당황했었다. 알고리즘을 알면 뭐하나 이걸 내가 사용해야하는 언어인 JAVA로 제대로 표현을 못하는데 ..

기록/WIL 2022.08.21

[Programmers] 이상한 문자 만들기(JAVA)-Level 1

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. *Programmers에서도 정확성 테스트 통과, eclipes에서 수,박을 반복 원하는 수를 입력 받아 결과를 출력한 코드 1. " "문자의 공백 칸이 있을 경우 0번째 인덱스로 돌아가며 짝수일 경우 대문자, 홀수 일 경우 소문자로 변환하면 되는 간단한 문제이다. 우선 배열의 id..

[이노베이션캠프]1주차 WIL

느낀점 우선적으로 캠프의 첫 주를 시작하고 가장 먼저 든 생각은 안일함이였다. 전공이 컴퓨터 공학이다 보니 과거에 어느 정도 배웠던 것들이니 쉽게 받아들일 수 있을 거라 생각하고 사전에 공부를 별로 안해뒀었다. 실제로 1주차를 진행하며 팀별 미니 프로젝트로 웹사이트를 만드니 기본적인 HTML 같은 부분에 대해서는 괜찮았으나 특히 서버도 직접 연동해 데이터를 저장하고 그를 통해 웹사이트를 구동시킬려하니 내 계정의 몽고디비가 안돌아 가기도 하고 미숙한 점이 많았다. 사전에 공부를 조금이라도 더 했으면 좀 더 수월하고 팀원에게 도움이 될 수 있었을 것 같은데 그 부분에 후회가 있었다. 학교에서 팀 프로젝트를 진행 해 볼 때는 선배나, 교수님 같은 리드를 해주는 사람이 있었으나 미니 프로젝트의 경우 4일안에 웹..

기록/WIL 2022.08.08

[Programmers]완주하지 못한 선수(JAVA)-Level 1

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. *Programmers에서도 정확성 테스트 통과, eclipes에서 결과를 출력한 코..

[Programmers] 수박수박수박수박수?(JAVA)-LEVEL 1

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. n은 길이 10,000이하인 자연수입니다. *Programmers에서도 정확성 테스트 통과, eclipes에서 수,박을 반복 원하는 수를 입력 받아 결과를 출력한 코드 1. 정말 간단한 문제로 i번째 글짜가 짝수 일 경우 "수"를 문자열에 붙여주고 홀수일 경우 "박"을 문자열에 저장해주면된다. 짝, 홀수 구별은 2로 나눴을떄(%) 나머지가 없으면 짝수, 있으면 홀수로 구분했다. package codingtest; import java.util.*; public class Waterm..

[Programmers]나누어 떨어지는 숫자 배열(JAVA)-LEVEL 1

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. *Programmers에서도 정확성 테스트 통과, eclipes에서 직접 입력할 배열의 길이, 배열 값, 나눌값을 받아 변환 값 출력 한 코드 1. 배열이 비어있으면 -1을 넣어 리턴해야하니 cnt로 배열의 idx 수 확인, 나누어떨어지는 수 % 나..