항해99를 시작한 첫날이다. 시작 전 많은 불안과 기대가 공존하였지만 퇴사를 결심한 나의 선택이기에 시작이 없다면 결과도 없을테니 이대로 나아가는 것 밖엔 답이 없다. 지금 내가 할 수 있는 것은 99일간 항해를 같이 하게 될 팀원들과 나를 믿고 앞으로 나아가는 것 뿐
항해 시작 2일차.하루 종일 삽질의 연속이었다. 분명 너무나도 기초적인 것들일 텐데몇 시간씩 끙끙대다 하나 겨우 해결하는 고난의 반복, 동적 페이지 크롤링을 하는데 애를 많이 먹었다. 셀레니움으로 크롤링 하는 방법을 찾아 해결되었다. 2일차지만 정말 구글링을 많이하게
항해 3일차여전히 삽질중이다.팀원들과 아직 구현하지 못한 기능에 대해 분담하여 해결하기로 하였다.회원가입 과정에서 입력 값들이 설정한 형식에 맞게 입력되는지, 패스워드는 해시 함수를 사용하여 암호화되어 저장되는지, 로그인 과정에서 토큰이 발행되어 쿠키에 저장이 되는
항해 4일차미니 프로젝트 마감일이다.처음 구상했던 만큼 결과물이 나오진 않아 아쉬운 마음도 있지만 의미있는 4일이었다. 처음 모두 코딩에 익숙하지 않은 상태였고 걱정도 많았다. 열심히 구글링을 통해 이만큼 구현 했다는 점도 놀랍다.조금씩 더 공부를 해나가며 아직 익숙하
항해 5일차미니프로젝트를 마무리하고 Chapter 2 알고리즘 기초에 들어갔다.Chapter 2 부터는 또 다른 팀원들과 함께 하게 되었다.1주일간 28문제를 풀어야 하기에 하루 4문제 이상은 풀어야 한다.추가 12문제가 더 있어서 최대한 완벽하게 이해하고 추가 문제를
항해 6일차 오늘도 알고리즘 문제를 풀고있다. 전에 했던게 조금씩 생각이난다. 전에도 잘하진 못했지만 다시 조금씩 손에 익히려고 노력중이다. 문제를 풀어가며 생각이 안나는 문법은 찾아보면서 하는중이다. 알고리즘을 풀어보니 역시나 어렵다.. 차근차근 하나씩 생각해보
항해 8일차1주일간 총 40문제(기본 28문제 + 심화 12문제)를 해결하는 목적으로 팀원들과 함께 해결중이며매일 각자 1~2개씩 본인이 구현 했던 코드를 리뷰하고 있다.수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을
항해 9일차오늘 하루도 알고리즘 문제를 계속 풀었고, 협력사 채용 세션이 있었다.지금까진 IT회사에서 근무 경험이 없어 모든게 새로웠고 더 의지를 다질 수 있는 계기가 되었다.채용 세션이 끝나고 자체 모의고사가 있었다. 총 2문제였고 나는 1번을 선택하여 문제를 풀고
항해 10일차문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.문자열 전체의 짝/홀수
항해 11일차\_2022_01_20수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3,
항해 12일차 2022_01_21알고리즘 주차를 마무리 하고 본격적으로 spring을 시작하게 되었다.spring시작 전 java기초 문법을 다시 상기시켰다.위와 같이 "클래스명과 똑같은 이름을 가진 메소드를 "생성자"라고 한다.검색창을 클릭하고, 다음을 차례대로 검색
항해 13일차 20220122 1. RDBMS RDBMS(Relational DataBase Management System)은 컴퓨터에 정보를 저장하고 관리하는 기술
항해 15일차 2022_01_24Spring 기본 개념만 익히고 개인 프로젝트에 들어갔다. 하지만... 많이 부족하다. 했던걸 계속 보고 구글링의 연속이다.반복하다 보니 조금은 데이터들이 어떻게 오고가는지 어느정도 이해가 된다.전체 게시글 목록 조회 페이지제목, 작성자
항해 16일차 2022.01.25 개인프로젝트는 여전히 진행중이다. 어제 설계까지 끝냈고, 오늘부터 구현을 해보기 시작했다. 3. 동작확인 >설계한 API가 잘 동작하는지 확인하는 단계이다. ARC 이용해 값들이 잘 오고 가는지 확인 해 주면 된다. 다행이 정상 작
항해 17일차 2022.01.26우여곡절 끝에 프로젝트를 완성했다. 처음 기능 요구사항이었던 조회,작성을 완성했다.(HTML과 CSS는 크게 신경 안쓰고 작성을 했지만...오랜 시간이 걸렸다)완성을 하고나니 조금 밋밋했다 기능이 너무 없다고 해야하나? 추가로 수정, 삭
항해 18일차 2022_01_27프로젝트를 끝내고 팀 과제를 진행했다.Java Persistence API의 줄임말로 JAVA가 제공하는 API 이며 SQL을 쓰지 않고 Method를 통해 DB를 조작할 수 있다. 자바로 영구적(Persistence)으로 데이터를 저장
항해 19일차 2022_01_29ControllerClient 의 요청을 Model 로 받아 처리Template engine 에게 View, Model 전달View: 동적 HTML 파일Model: View 에 적용할 정보들Template engineView 에 Mode
항해 20일차 2022_01-29 1. 스프링 MVC 이해 - Request Controller 와 HTTP Request 메시지
항해 22일차 2022_01_31두번째 스프링 개인 과제를 하고있다... 스프링 봐도봐도 어렵다..'스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 준다.
항해 23일차 2022.02.01명절이지만... 우리는 명절 없이 달린다.개인 프로젝트 진행 중 게시물을 작성하는 post 방식에서 계속해서 오류가 발생했다.There was an unexpected error (type=Method Not Allowed, status
항해 24일차 2022.02.03프로젝트는 끝냈지만 여전히 이해 안되고 라이브코딩이 힘들다.다시한번 기초를 다지고 완벽히 구조를 이해한뒤에 100%완벽하게는 아니지만혼자서 코딩을 해보려고 한다.컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver
항해 25일차 2022.02.03컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리아직
항해26일차 2022.02.04좋은 소프트웨어 설계를 위해서는 결합도는 낮추고 응집도는 높여야 한다.결합도 : 클래스간의 상호 의존 정도를 나타내는 지표로써 결합도가 낮으면 클래스간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 유리하다.B라는 클래스가 A의
디자인 패턴 1. Singleton Pattern
항해 29일차 2022.02.08개인 프로젝트는 끝냈지만 많이 부족하다고 느꼈다.어디서부터 어떻게 손을 봐야할지 아직 잘 모르겠다....마치 머리속에 맞춰지지 않은 퍼즐들이 제자리를 못찾고 떠돌아다니고 있는 느낌이다.개념 공부가 아직 부족하다고 느껴지지만 주어진 시간은
REST API란?
MVC 테스트
항해 32일차 2022.02.10
항해 33일차 2022.02.11spring 주특기 심화 과정이 끝나고 팀프로젝트를 시작했다.처음으로 프론트앤드와 협업하여 진행하는 프로젝트 이기에 더욱 부담된다.새로운 팀원들과 만나 API설계를 하고 백앤드 팀원들과 DB설계까지 하였다.메인페이지 a. 모임 목록이
항해 34일차 2022.02.13front 서버와 back서버의 주소(포트)가 다르면 cors에러가 발생한다. (chrome은 cors 기본정책이 strict-origin-when-cross-origin)그래서 서버단에서 특정 origin을 허용할 수 있게 cors설정
항해 36일차 2022.02.15서버가 1대인 경우 모든 클라이언트의 로그인 정보를 소유한다.서버가 2대 이상인 경우 서버의 대용량 트래픽 처리를 위해 서버 2대 이상 운영이 필요하다.서버마다 다른 클라이언트 로그인 정보를 가지고 있을 수 있다.서버1 : 클라이언트1,
항해 37일차 2022.02.15 JWT 1. JWT 사용 흐름 클라이언트가 username, password 로 로그인 성공 시 a. "로그인 정보" → JWT 로 암호화 (Secret Key 사용) b. JWT 를 Client 응답에 전달 c. 클
항해 38일차 2022.02.16
항해 39일차 2022.02.17
항해 40일차 2022.02.18
항해 41일차 2022.02.19 데이터 연관관계
항해 42일차
항해 43일차 2022.02.22
트랜잭션(Transaction)
트랜잭션의 ACID란?
프로그래머스_핸드폰 번호 가리기
프로그래머스_행렬의 덧셈
항해 50일차 2022.02.28마지막 프로젝트를 진행중이며 유저가 업로드 하는 이미지 파일을 S3 클라우드에 저장하는 방식을 사용헤보기로 했다.먼저 AWS S3 Bucket을 생성하고 코드 구현을 했다.build.gradleapllication.propertiesS3
항해 51일차 2022.03.01 최종프로젝트에서 구현 예정인 기술은 Websocket방식인 실시간 채팅이다. 배운적도,구현해본 경험도 없기에 기초 개념부터 배워야했다. 하지만 Websocket은 node.js에 특화된 기술로 많은 레퍼런스를 찾기 힘들었다. 그나마
항해 52일차 2022.03.02
항해 57일차 2022.03.07
항해 58일차 2022.03.08
항해 59일차 2022.03.09
웹 통신의 흐름?
항해 60일차 2022.3.10
HTTP vs HTTPS
항해 71일차 2022.03.21배포 자동화와 관련해서 Jenkins, Travis CI, Github Actions에 대해 알아보고 있다. Jenkins가 설치형이고 메모리를 많이 사용하기 때문에, 우리의 작은 서버에서는 구동이 어려울 것 같아 최종적으론 무설치/연동
Travis CI 연동
Travis CI와 AWS S3 연동
Travis CI와 AWS S3, CodeDeploy 연동
Nginx 무중단 배포
Travis CI로 application.properties 암호화
예외처리
우리의 프로젝트에 클라이언트와 서버간에 데이터 암호화를 위해 HTTPS를 적용해보았다.HTTPS 적용을 위해 필요한 것!EC2 서버(해당 작성 글은 ubuntu 18.04 프리티어 버전을 사용했다.)도메인(해당 글은 가비아 도메인을 사용했으나 어느 도메인이든 상관없지만
컴퓨터 등 클라이언트에서 발생한 데이터가 상대방 컴퓨터 혹은 서버로 전달되기 위해 표준화된 어떠한 약속이나 절차를 따라야한다. 전송은 데이터를 안전,정확하고 신속하게 규격화된 방법이 필요하고 받는 입장에서는 해당 데이터를 안전,정확하고 신속하게 해석하는 방법이 필요하다
https://choicode.tistory.com/27https://mangkyu.tistory.com/96https://choicode.tistory.com/27https://choicode.tistory.com/27
CPU : 중앙처리장치초기의 컴퓨터는 멀티 태스킹이 불가능했다. 그러나 CPU 성능이 개선됨에 따라 Context Switching을 통해서 동시성을 구현하는 것이 가능해졌다.동시성(Concurrency) : 동시에 실행되는 것 같이 보이는 것2000년대 초반, 한계치
메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치로 분류초창기 컴퓨터에서는 사용 가능한 RAM의 용량이, 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했다. 그렇지 않을
이전 글에서 TCP/IP 모델에 대해 공부했다. TCP와 UDP는 TCP/IP의 전송계층 에서 사용되는 프로토콜이다.전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.TCP는 Transmission Control Prot