728x90
320x100
- 시스템 설계 기초 (로드밸런스, 메세지 큐, CDN, DNS 등) 아래의 내용은 을 바탕으로 정리한 내용입니다. 사용자는 웹 브라우저나 모바일 앱을 통해 도메인 이름을 이용하여 웹사이트에 접속한다. 이 접속을 위해서 DNS에 질의하여 IP주소로 변환하는 과정이 필요하다.DNS(Dmain Name Service) : 도메인 이름을 IP주소로 반환한다. ex) www.test.com -> 100.100.100.100정적 콘텐츠 (JS, CSS, 이미지 등)은 웹서버를 통해 서비스하지 않고 CDN을 통해 제공하여 더 나은 성능을 보장한다. CDN(콘텐츠 전송 네트워크) : 정적 네트워크를 전송하는데 쓰이는, 지리적으로 분산된 서버의 네트워크로 JS, CSS, 이미지 등을 캐시할 수 있다.CDN 사용시 고려해야 할 사항 : 적절한 만료 시한 설정, 비용, 장에 애 대..
- [HTTP] 인터넷 네크워크 (IP(인터넷 프로토콜), TCP/UDP, PORT, DNS) 인터넷 프로토콜 스택의 4계층인터넷 프로토콜 스택의 4계층을 간략하게 보면 위와 같다. 이를 좀 더 뜯어보자. 인터넷 프로토콜(Internet Protocol, IP)인터넷 프로토콜(Internet Protocol, IP)은 컴퓨터 네트워크에서 데이터를 주고받는 데 사용하는 규약이다.IP는 인터넷의 핵심 프로토콜로, 모든 인터넷 트래픽의 전달을 담당한다.IP 주소를 사용하여 발신지와 수신지를 식별하고, 데이터를 패킷(packet)이라는 작은 단위로 나누어 전송한다.인터넷에서 데이터를 주고 받기 위해서 각자 전송과 송신이 가능한 식별자가 필요한데, 그 중 하나가 IP이다. 인터넷 프로토콜(Internet Protocol, IP) 주요 개념 IP 주소IPv4 (Internet Protocol version..
- [스프링(Spring)] 롬복(Lombok) (롬복이란 / 자주 쓰는 기능 / @Data 사용을 지양해야 하는 이유 등) 롬복(Lombok) 이란?롬복(Lombok)은 자바 개발자들이 코드 작성을 더욱 편리하게 할 수 있도록 도와주는 라이브러리이다. 롬복(Lombok)의 특징컴파일 시점에 코드를 추가한다.별도의 라이브러리를 추가로 설치해야 한다.IDE의 플러그인을 지원한다. [자주 쓰는 기능] @Getter, @Setter클래스의 필드에 대한 getter, setter 메서드를 자동으로 생성해 준다.코드의 양을 줄이고, 가독성을 높일 수 있다.[사용전]public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) ..
- [스프링(Spring)] HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 (@RequestParam, @RequestBody, @ModelAttribute 이해하기) HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 가장 많이 사용하는 3가지 방법과 스프링과 연계하여 @RequestParam, @RequestBody, @ModelAttribute 어노테이션에 대해 이해해보자! [HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법]가장 많이 사용하는 3가지 방법을 정리하였다. 1. GET - 쿼리 파라미터 형식으로 요청하기HTTP message body 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달하는 방식이다.요청형태 -> /url?username=hello&age=20검색, 필터, 페이징 등에서 많이 사용한다.*** 이 때 주로 사용하는 (혹은 적절한) 스프링 어노테이션@RequestParam@GetMapping(..
개발일지를 씁니다.
- [개발일지#013] 데이터베이스 컬럼추가 및 화면 수정 카카오 도서 검색 API를 사용하려고보니 ISBN 나 썸네일 이미지 등 가져올 수 있는 정보가 생각보다 디테일하고 많아서,조금 더 풍부한 형태로 조회/등록/수정이 가능할 것 같아 이것저것 수정하게 되었다. 1. 일단 개발 편의성을 위해 다른 사이드에 적용했던 Xml에서 카멜 표기법을 적용해두었고 [Spring boot(스프링부트)/Mybatis] Xml에 카멜표기법 설정하기Mybatis를 사용하여 xml을 사용할 때 예를들어 데이터베이스의 MEMBER_ID 컬럼이고 Java의 Dto 변수명이 memberd일 경우, 자동으로 카멜변환을 해주지 못해서 급한대로 아래처럼 alias를 따로 줬었음. 그리ddururiiiiiii.tistory.com 2. 또다른 개발 편의성을 위해 log4jdbc를 이용해..
- [개발일지#005] 시험풀기 화면 구현 (레이아웃, 안푼문제, 소요시간 등) 1. 레이아웃 구현하기레이아웃은 실제로 방통대에서 오프라인으로 태플릿 시험을 볼 때 화면과 가장 유사하게 만들려고 노력했다. 반응형보다는 높이, 넓이가 고정되어 있고 웹에서 최적화가 되도록 했다. 처음에 Div를 여러개 만들어 해보려고 했으나 생각보다 잘되지 않아서 그냥 테이블 태그를 이용해서 만들었다. 이런식으로 테이블태그를 만들고 각각의 배경색을 눈에 띄는 원색으로 입혀서 테이블 모양이 어떤지 확인하면서 작업했음. 고생 끝에 완성된 레이아웃은 이런 형태이다. 별로 예쁘진 않지만........일단 가로세로 높이가 픽스되어서 고정형이고 안에 문제가 나오는 부분도 고정형으로 내부 스크롤이 따로 있으며, 좌측에는 문제와 보기가 보여지고 우측에는 어떤 답을 선택했는지 OMR형식으로 보여주는 화면으로 구성되어..
- [개발일지#004] 기출문제 목록조회 (검색조회 및 페이지네이션 포함) [구현하고자 하는 화면]소스 이해를 위해 구현하고자 하는 화면을 먼저 띄워보자면상단의 검색조건을 선택할 때마다 그 검색조건에 맞는 결과값들이 하단에 바로바로 조회되는 방식을 만들고 싶었다.검색조건 값들도 하드코딩이 아니라 동적으로 불러오는 방식으로 하고 싶었음. 0. 기출문제 검색조건 조회SearchCriteria.javapackage knou.cbt.domain.exam;import lombok.Getter;import lombok.RequiredArgsConstructor;import lombok.Setter;@Getter @Setter@RequiredArgsConstructorpublic class SearchCriteria { private String departmentId; pri..
매월, 매년 회고를 씁니다.
- 2024년 10월 회고 - 나 생일! [개발분야]오랜 만에 면접 그 이후 이야기9월, 오랜만에 면접을 다녀왔고 나에겐 멘탈이 털리다 못해 갈릴 정도의 '최악'의 면접이였어서 '경험이란 본디 많을수록 좋은 거라지만 이런 경험이라면 다시는 하고 싶지 않다'고 9월 회고에 글을 쓴 적이 있다. 면접 당시 면접관 분들이 내가 느끼기에 나에게 굉장히 비 호의적이였고 무례했으며 나 또한 면접을 잘봤다고 생각하지 않았기 때문에 당연히 '불합격'을 예상했다. 그런데, 예상 외로 며칠 뒤 합격 통보를 받았다. 면접에 붙고 기쁘지 않은 적은 처음이였다. 애초에 붙을 거라는 생각도 하지 않았지만 붙더라도 입사할 생각이 없던 터라 정중히 입사제안을 거절했다. 그렇게 하나의 에피소드가 마무리 되는 줄 알았다. 그런데 또 며칠 뒤, 면접관으로 부터 메일 한 통을 받..
- 2024년 9월 회고 - 얼마나 잘되려고 이런 시련을 9월.... 아니 얼마나 잘되려고 (이련 시련을 폭탄으로 내려주시나) [개발분야]펜지콘이 열렸습니다.8월 회고에서는 2024 펜지콘을 준비하고 있다고 말씀드렸었는데요. 9/9일 2024 펜지콘이 진행되었고 저는 거기서 기획과 연사를 맡았습니다. 생각보다 많은 분들이 참여해주시고 호응해 주셔서 너무 감사했습니다. 더 자세한 후기가 궁금하시다면 아래의 링크를 클릭해 주세요. [2024 펜지콘] 후기 (기획 및 참여)들어가는 글작년 처음 시작했던 대전 여성 개발자 컨퍼런스인 '펜지콘'이 올해도 어김없이 돌아왔다! 올해도 나는 감사하게도 기획 및 운영에 참가할 수 있게 되었으며 더 감사하게도 이번엔 연ddururiiiiiii.tistory.com 원티드 백앤드 챌린지에 참여했다.원티드에서는 주기적으로 여러..
- 개발자 3년 회고 1년 회고 때는 월별 회고 처럼 했던 것들을 쭈욱 나열해 가면서 썼고, 2년 회고에서는 그런 1년 회고를 창피해하며 2년 차에 들었던 생각들을 적었는데, 3년 회고를 쓰려고 2년 회고를 보니 또 그건 그거대로 '이게 회고 맞나?' 싶어 부끄럽다. 그러니 왠지 3년 차 회고도 쓰는 게 괜히 부담스러워서, 어떤 걸 써야 할지 모르겠어서, 쓸 내용이 없는 것 같아서 망설이다가 그래도 회고글을 쓰기 위해 나의 지난 1년을 돌아보고, 어떤 생각을 했는지, 지금 어떤 생각을 하는지 쓰다 보면 10년 차쯤 되면 적어도 스스로 부끄럽지 않은 그럴싸한 회고가 나오지 않을까? 하는 기대를 품으며 또 회고를 써 본다. 개발자 2년 회고얼마 전, 개발자 된 지 만 2년이 지났다. 1년이 또 엄청 빠르게 흘러갔다. (세월 ..
읽은 책에 대한 이야기를 합니다.
- 세번째 읽는, 함께 자라기 : 애자일로 가는 길 (김창준) 책제목 : 함께자라기저자 : 김창준출판사 : 인사이트야생학습협력적이며, 비순차적이고 자료에 한정되지 않으며 명확한 평가를 하지 않는다. 또한 정답은 없으며 목표가 불분명하며 바뀌기도 한다. 이 책에서 말하는 '경력'이란?초급인지 아닌지만 구분해 내는 수단.초급이 아니라면 오히려 경력은 잘못된 정보일 수 있다.경력으로 채용여부나 임금여부를 판단하는 것은 편의적, 관료주의적이며 오히려 조직에 손해이다. 애자일 피드백을 짧은 주기로 얻는 것불확실성이 클 때 우리가 어떻게 해야 하는지 고민한 결과물 1만시간의 법칙 : 자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련 = 의도적 수련자기 계발은 복리로 돌아온다 (*** 내가 가장 좋아하는 말 ***)부트스트래핑 : 자기가 신은 신발에 달린 끈으로 들어올려 ..
- 소프트웨어 장신 (산드로 만쿠소) - 장인정신을 향하여 책이름 : 소프트웨어 장인저자 : 산드로 만쿠소출판사 : 길벗애자일 정신빠르고 빠른 짧은 피드백 루프를 통해 올바른 일을 하는지 점검하는 과정팀원의 역할은 지시 받은 일만 하는 것이 아니라, 비지니스와 고객창출에 개발자들이 직접 참여하는 것이 중요코드를 잘 작성하는 것은 프로페셔녈이 가져야 할 최소한의 요건이며, 고객의 만족이 최우선이 되어야 한다.완전한 애자일 전환이란 절차과 도구의 도입 뿐만 아니라 기술적인 탁월함 (= 개발자의 프로페셔널) 모두 함께 있어야 한다.변화와 싸우는 것이 아니라 변화 자체를 내제화 한 것.애자일 방법론이 품질 상태에 대해 알려주진 않기 때문에 소프트웨어 장인 정신이 이 부분을 보완해준다. 소프트웨어 장인 정신개발자가 선택한 커리어에 책임을 지고, 지속적으로 새로운 도구와 ..
- 그림으로 이해하는 서버 구조와 기술 (요코타카즈키, 엔도유키) / 쉽게 설명해주는 기술서적 보는게 얼마 만인가. 책제목 : 그림으로 이해하는 서버 구조와 기술저자 : 요코타카즈키, 엔도유키출판사 : 길벗 길벗 리뷰어 참여로 보게된 책인데 사실 이 책을 예전부터 사고 싶어서 리뷰어를 내가 신청했음; (길벗에서 제공받았습니다.) 그래서 리뷰어라서 쓴다기보다는...리뷰도 쓰고 책도 보고....일석 이조 아니냐고....요즘 서버 & 인프라 공부하고 싶은데 나는 개발자여도 서버 & 인프라 쪽은 잘 모르는 상태라 그런지 책들이 나에게 너무 어렵거나 너무 방대하거나 너무 국소적인 부분이 있어서 책고르는데 어려움이 있었던 상태에서 보게 된 책. 일단 쉽다... 정말 그림으로 이해하기 쉽게 되어있다. 마치 예전에 수학의 정석, 개념원리 보다가 뭔말인지 몰랐는데 완자봤더니 설명 잘되어 있어서 눈이 트이는 그런 느낌이었음.그리고..
가장 조회가 많은 글입니다.
- [Git-hub/Eclipse] 깃허브와 이클립스 연동하기 ( + 추가 및 수정) 개인적으로 공부한 코드들을 내 개인 깃허브에 차곡차곡 쌓기 위해 내가 사용하는 개발툴인 이클립스와 내 개인 깃허브를 연동해보려 한다. [전제사항] github(깃허브) 아이디가 있다. 이클립스를 이미 설치 했다. github(깃허브)에 연동하고자 하는 프로젝트를 이클립스에 만들어 놨다. [순서] github(깃허브)에 레파지토리 만들어주기 이클립스에서 github(깃허브) 연동하기 gitignore 설정하기 첫 Commit & Push해주기 1. 내 github에 Repository 생성하기 1) 내 깃허브 페이지에서 상단에 [Repositories]를 클릭한 후 초록색 버튼의 [New]를 클릭 해준다. 2) Repository name은 필수 입력이니 적어주고 누구나 주소만 있으면 내가 짠코드들을 볼 ..
- [IntelliJ] 인텔리제이 플러그인 추천 리스트 인텔리제이 쓰면서 참으로 편리했던 플러그인 (이제 없으면 안되는..) 몇 개 리스트 추천! 1. CodeGlance 소스창 오른쪽에 미니맵을 만들어줌. 소스창 오른 쪽에 소스 미니맵을 만들어 주는데 예전에 VS Code 쓸 때는 이 미니맵이 기본적으로 들어가 있어서 은근 편했는데 인텔리제이에도 이 기능을 제공하는 플러그인이 있어 당연히 깔아줬다. 참고로 3버전을 깔았는데 적용이 안되서 Pro 버전으로 재설치 하니까 잘됐음. 혹시 나처럼 3 버전 안깔리시는 분들은 참고! 2. Rainbow Brackets 각 괄호마다 다른 색으로 변화를 줌. 소스의 양이 많고 괄호가 많을 수록 유용함 나는 괄호가 많을 수록 주석으로 끝나는 괄호에 따로 표시를 해주는데 이 플러그인 사용하면 쓸데없는 주석 사용을 줄일 수 있..
- 방통대 컴퓨터학과 3학년 1학기 후기 [들어가는 글]방통대 편입 후, 나의 첫학기가 끝이 났다. 처음 혹은 오랜만이라 그런지 정신 없이 흘러간 3학년 1학기. 어쨌든 끝이 났으니 간략하게 후기를 남겨보고자 한다. [수강과목]3학년 1학기는 패스과목인 '원격대학교육의 이해'를 포함하여 전공 12학점, 교양 6학점으로 총 19학점 신청해 들었다. 첫 학기 부터 빡센거 아닌가 하는 의구심이 들었던 건 사실이지만 졸업요건을 채우려면 2학기는 12학점씩 2학기는 9학점씩 들으면 됐는데 4학년 때 빡센것보다 그냥 3학년 때 빡세고 말자는 생각으로 짜다보니 이렇게 짜게 되었음. [과목을 선택한 기준]1. 컴공 필수 5대과목 (컴퓨터구조, 운영체제, 알고리즘, 자료구조, 데이터베이스)2. 재미있어 보이거나 후기에서 수업/시험 모두 무난하거나 괜찮다고 ..
최신 글 입니다.
- [String, Data/LEVEL1] 한 해에 잡은 물고기 수 구하기 (MySQL) MySQLSELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE YEAR(TIME) = 2021
- 세번째 읽는, 함께 자라기 : 애자일로 가는 길 (김창준) 책제목 : 함께자라기저자 : 김창준출판사 : 인사이트야생학습협력적이며, 비순차적이고 자료에 한정되지 않으며 명확한 평가를 하지 않는다. 또한 정답은 없으며 목표가 불분명하며 바뀌기도 한다. 이 책에서 말하는 '경력'이란?초급인지 아닌지만 구분해 내는 수단.초급이 아니라면 오히려 경력은 잘못된 정보일 수 있다.경력으로 채용여부나 임금여부를 판단하는 것은 편의적, 관료주의적이며 오히려 조직에 손해이다. 애자일 피드백을 짧은 주기로 얻는 것불확실성이 클 때 우리가 어떻게 해야 하는지 고민한 결과물 1만시간의 법칙 : 자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련 = 의도적 수련자기 계발은 복리로 돌아온다 (*** 내가 가장 좋아하는 말 ***)부트스트래핑 : 자기가 신은 신발에 달린 끈으로 들어올려 ..
- [JOIN/LEVEL4] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (MySQL/Oracle) MySQLSELECT A.CAR_ID, A.CAR_TYPE, ROUND(A.DAILY_FEE * 30 * ( 100 - C.DISCOUNT_RATE ) / 100) AS FEEFROM CAR_RENTAL_COMPANY_CAR A , CAR_RENTAL_COMPANY_RENTAL_HISTORY B , CAR_RENTAL_COMPANY_DISCOUNT_PLAN CWHERE A.CAR_ID = B.CAR_IDAND A.CAR_TYPE = C.CAR_TYPEAND A.CAR_TYPE IN ('세단', 'SUV')AND A.CAR_ID NOT IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY ..
728x90
320x100