분류 전체보기
[컨퍼런스] 2021.07.17 Google Women Developers Academy 후기
[컨퍼런스] 2021.07.17 Google Women Developers Academy 후기
2021.07.18회사 슬랙에서 기술에 관련 소식이나 글을 공유하는 채널이 있다. 이 채널을 통해서 구글에서 주최하는 Women Developers Academy에 대해 알게 되었고, 마침 신청 기간이 도래했길래 한번 신청해봤다. Women Developers Academy? 이 아카데미의 취지는 기술 분야에 있는 여성이 스스로에 대해 자신감을 갖게 하고, 이를 기반으로 본인이 가진 지식이나 경험, 인싸이트를 대중에게 공유하고 서로 긍정적인 상호작용을 할 수 있도록 돕는 것이다. 테크 분야의 여성들이 발표를 비롯한 기타 커뮤니티 공헌을 통해 업계 리더로 발돋움하는 것을 돕고자 Women Developer Academy를 개최합니다. Women Developer Academy는 발표 기회를 포착하고, 발표 능력을 향상시키고..
Connection Pool이 없는 언어(PHP, Ruby)의 DB Connection 관리
Connection Pool이 없는 언어(PHP, Ruby)의 DB Connection 관리
2021.07.16PHP와 Ruby는 Connection Pool 기능이 없다! 위와 같이 Connection Pool 기능이 없는 언어의 경우, DB 접속을 위해 Connection Pool을 관리해주는 기능을 사용하는 것이 좋다. 만약 DB로 AWS RDS를 사용하는 경우 AWS RDS Proxy는 괜찮은 대안이다. 자체적으로 Connection Pool 기능일 제공하는 DB를 이용한다면 모를까, 커넥션 풀을 하지 못하는 언어에서는 Connection Pool 없이 DB 접속 시 사용자 수가 몰리면 DB가 죽을 수 있다 (웹서버가 죽지 않았는데도!) 자세한 내용은 AWS 가이드를 참고하자! PHP 및 Ruby on Rails와 같은 언어와 프레임워크를 사용하는 애플리케이션은 일반적으로 프록시를 사용하는 것이 좋습니다...
[책] Learning PHP 챕터 7~10 요약
[책] Learning PHP 챕터 7~10 요약
2021.07.047. 사용자와 정보 주고받기: 웹 폼 제작 서버 변수 자동 전역변수인 $_SERVER에는 PHP_SELF, REQUEST_METHOD처럼 웹 서버와 현재 요청에 대한 정보를 제공하는 유용한 원소가 많음 PHP_SELF : 현재 요청한 URL의 일부 경로명 REQUEST_METHOD : 브라우저가 어떤 HTTP 메서드로 요청했는 지 QUERY_STRING : 전체 URL에서 ? 이후 쿼리스트링 PATH_INFO SERVER_NAME : 도메인명 DOCUMENT_ROOT : 웹사이트 문서가 위치한 웹수 서버 컴퓨터의 디렉토리 REMOTE_ADDR : 웹 서버로 요청한 클라이언트의 IP REMOTE_HOST : 웹 서버로 요청한 클라이언트의 IP를 호스트명으로 전환한 값. 하지만 웹 서버가 이 전환 작업을 수..
[책] Learning PHP 챕터 4~6 요약
[책] Learning PHP 챕터 4~6 요약
2021.06.304. 데이터 집합: 배열 다루기 배열 선언 및 할당 배열 : key와 value로 구성, key는 스칼라 값만 가능 배열 선언 : $vegetables = array('corn'=>'노랑', 'beet'=>'빨강') 혹은 단축 배열(php 5.4+)로 표현 $vegetables = ['corn'=>'노랑', 'beet'=>'빨강'], $vegetables['corn'] = '노랑'; 배열 재할당 : 배열에 스칼라값 할당 시 배열변수는 스칼라변수로 변경된다. 스칼라 변수를 다시 배열 변수로 덮어씌우려면 array() 구문을 써야함. $스칼라변수['key'] = value 는 php 엔진 경고만 발생시키고 기존 스칼라값으로 유지된다. (배열 안먹음) => 이건 아마.. 배열 변수는 배열 클래스(?)를 상속한..
[책] Learning PHP 챕터 1~3 요약
[책] Learning PHP 챕터 1~3 요약
2021.06.29최근에 이직한 회사에서 운영중인 메인 서비스가 PHP로 되어있다. 입사 전에 OReilly에서 출판한 책 Learning PHP을 도서관에서 대여해서 가볍게 훑었다. 기존에 알고 있었던 언어들과 차이점, PHP만의 특징과 복기해야할(?)만한 것들 위주로 정리했다. 1. 오리엔테이션과 첫걸음 함수의 대소문자 구별이 없으나 변수는 대소문자 구분 있 Here Document(Here 문서) 를 사용할 수 있으나, 이를 인식하지 못하는 서버가 있을 수 있으므로 축약 지양
코딩보단 개발, 내가 되고 싶은 개발자의 모습
코딩보단 개발, 내가 되고 싶은 개발자의 모습
2021.06.20보통 사람들이 개발자가 하는 일은 주로 코딩(텍스트 창에 영어를 잔뜩 타이핑하는)이라고 생각한다. 그렇기 때문에 코딩을 잘 하는 개발자가 좋은 개발자라고 생각하는 분들도 많다. 나도 처음 개발자로서 월급을 받을 때에는 그렇게 생각했다. 요즘에는 생각이 조금 다르다. 좋은 개발자의 조건 중 코딩이 있는 건 맞지만, 코딩을 잘 한다고 해서 좋은 개발자는 아니라는 생각이 든다. 좋은 개발자가 되기 위해서는 일단, 개발자가 하는 일이 무엇인지 나열해봐야할 것 같다. 개발자에게 코딩이란? 첫 회사(SI)를 다닐 때 참석했던 회의에서 받았던 질문이 아직도 기억에 남는다. "이 화면 개발하는 데에 얼마나 걸렸어요?" 이 질문을 들었을 때 많이 당황했다. 그 질문을 한 고객과 함께 회의에 참여하고 요구사항을 논의한 게..
[강의 리뷰] 모든 개발자를 위한 HTTP 웹 기본 지식 - 강추 후기
[강의 리뷰] 모든 개발자를 위한 HTTP 웹 기본 지식 - 강추 후기
2021.05.25믿고 듣는 김영한님의 HTTP 네트워크 강의 리뷰를 남긴다. (사실 김영한님 강의 처음들어봄ㅋ) 해당 강의를 들으면서 정리했던 포스팅 했던 것과 별개로 완강 기념으로 강의 자체의 방향과 추천 대상, 소감을 남긴다. 참고로 강의를 들으면서 정리한 내용이나 연관된 내용을 별도로 정리한 포스팅 목록은 아래에 있다. [HTTP] 인터넷 네트워크 [HTTP] URI와 웹 브라우저 요청 흐름 [HTTP] HTTP 기본 [HTTP] HTTP 메서드와 활용 RESTful API를 위한 6가지 원칙과 네이밍 강의 정보 https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 ..
Java로 알아보는 IoC, DIP, DI, IoC Container (하)
Java로 알아보는 IoC, DIP, DI, IoC Container (하)
2021.05.14저번 포스팅에 이어 DI 패턴과 IoC Container에 대해 알아보겠다. Step 3. DI (Dependency Injection) DI(Dependency Injection, 의존관계 주입)는 종속된 객체의 생성을 반전시키는 IoC 원칙을 구현한 디자인 패턴이다. 이전에 DIP 원칙에 따라 추상화하여 클래스간의 결합도를 낮추었다. 하지만 이전 포스팅 예제에서 여전히 CustomerBusinessLogic 클래스가 ICustomerDataAccess 객체를 반환하기 위해 DataAccessFactory 클래스를 참조하고 있다. 이제 DI 패턴을 구현하여 종속된 클래스의 객체 생성을 완전히 클래스 밖으로 내보낼 수 있다. DI 패턴은 IoC를 구현하는 디자인 패턴 중 하나이다. DI를 통해 종속된 객..
Java로 알아보는 IoC, DIP, DI, IoC Container (상)
Java로 알아보는 IoC, DIP, DI, IoC Container (상)
2021.05.13객체지향설계에서 클래스는 반드시 느슨하게 결합되어야 한다. 느슨한 결합은 한 클래스의 변경이 다른 클래스들에게 영향을 미치지 않는 것을 의미한다. 그래서 어플리케이션을 지속가능하고 확장성있게 만든다. 클래스 간의 느슨한 결합을 위해 다양한 원칙, 디자인패턴, 프레임워크가 존재한다. 그 중에서 디자인 원칙인 IoC, DIP와 디자인 패턴인 DI, 프레임워크인 IoC Container를 통해서 어떻게 클래스 간의 결합을 느슨하게 하는 지 알아보겠다. IoC 원칙만 도입한다고 해서 클래스간의 결합을 느슨하게 할 수 있는 것은 아니기 때문에 DIP 원칙, DI 패턴(IoC 원칙을 구현하는 디자인 패턴 중 하나)을 함께 사용해야한다. 그리고 이 모든 과정을 마법처럼 처리해주는 IoC Container에 대해서도 ..
RESTful API를 위한 6가지 원칙과 네이밍
RESTful API를 위한 6가지 원칙과 네이밍
2021.05.10REST와 RESTful REST는 REpresentational State Transfer 의 약어로, 클라이언트과 서버가 데이터를 주고 받는 방식에 대한 아키텍처 스타일이다. REST에는 여섯 가지의 기본 원칙이 있고, 이 가이드를 준수한 인터페이스는 RESTful하다고 표현한다. Client–server 구조 – 클라이언트와 서버는 서로 독립적이어야 하며, 클라이언트는 오직 URIs 리소스만 알아야한다. 클라이언트와 서버의 인터페이스가 변경되지 않는 한, 이 둘은 독립적으로 개발되거나 대체될 수 있게 유지해야한다. (관심사의 명확한 분리) Stateless(무상태성) – 클라이언트의 모든 요청에는 해당 요청을 이해할 수 있는 모든 정보가 포함되어야한다. 서버는 HTTP 요청에 대한 어떤 것도 저장하..
[HTTP] HTTP 메서드와 활용
[HTTP] HTTP 메서드와 활용
2021.05.05HTTP Method에 대해 알아보고, 이를 API 설계에 활용해보는 과정을 정리하였다. HTTP API 설계 강의 모든 개발자를 위한 HTTP 웹 기본 지식 와 개인적으로 공부한 내용을 정리하였습니다. Resource(리소스)라고 표현하고 있지만 최근에는 Representation이라는 표현으로 변경됨. 가장 중요한 것은 리소스 식별 (API URI 고민) URI(Uniform Resource Identifier) 리소스의 의미는 뭘까? 회원을 등록하고 수정하고 조회하는게 리소스가 아니다! 예) 미네랄을 캐라 -> 미네랄이 리소스 회원이라는 개념 자체가 바로 리소스다. 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다. -> 회원 리..
[HTTP] HTTP 기본
[HTTP] HTTP 기본
2021.05.02HTTP 메시지, 클라이언트 서버 구조, Stateful/Stateless, 비연결성에 대해 알아보자. 강의 모든 개발자를 위한 HTTP 웹 기본 지식 와 개인적으로 공부한 내용을 정리하였습니다. HTTP(HyperText Transfer Protocol) HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대! HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068 (199..