전체 글

· JPA
JPA이란? RDB(Relational Database)와 OOP 객체 사이의 불일치에서 오는 패러다임을 해결하기 위해 자바는 ORM(Object-Relational Mapping) 기술을 만들어 냈다. RDB는 우리가 흔히 쓰는 Mysql이나 Oracle와 같은 관계형 데이터베이스를 의미하며 ORM은 RDB를 매핑하는 역할을 함으로써 기본적인 쿼리문 같은 경우에는 개발자가 직접 작성하지 않아도 된다. 장점 객체지향적으로 관리가 되기에 비즈니스 로직에만 집중할 수 있기 때문에 생산성에 강점을 가진다. SQL로 직접 작성하지 않고, ORM 프레임워크가 대신 엔티티 필드가 되는 객체를 다르기 떄문에 유지보수가 간결하다. 복잡한 프로젝트 같은 경우에 Oracle, Mysql, Mssql 서로 같은 데이터베이스..
· spring
스프링 시큐리티를 통해서 회원가입부터 시작해서 로그인 & 로그아웃을 진행할 것이다. 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 기본적으로 시큐리티를 사용하기 위해서는 'org.springframework.boot:spring-boot-starter-security' 를 추가시켜야 하며, 필자 같은 경우에는 시큐리티 관련해서 Thymeleaf를 쓸 것이기 때문에 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'를 추가하였다. 2. ..
· php
평소에 서버사이드 쪽만 신경쓰다가 프론트 쪽을 만지게 되었는데, form에 대해서 새로운 사실(?) 을 알게 되었다. 처음에는 form에서 작업을 하다가 여러 체크박스를 선택하고 새로고침을 하면 이전에 체크박스가 해제되는 줄 알았다. 물론 백단에서는 form에 있던 element를 저장하고 체크했던 체크박스를 프론트에 나타나겠끔 만들었다. 다시 말해서 내 의도는 많은 체크박스들 중에서 몇 개의 체크박스를 선택하고 '검색' 버튼을 누르면 전에 선택한 체크박스는 남고, 새로고침(또는 F5)를 누르면 체크했던 체크박스가 해제를 할 수 있도록 만드려 했다.
· web
이번 주제는 http와 https에 대해 간단히 다뤄볼까 하다. http(HyperText Tranfer Protocol) 특징 1. 영어로 된 것을 직역하면 하이퍼텍스트 교환 프로토콜이다. 다시 말하면 웹 서버와 브라우저 간 하이퍼텍스트 문서를 교환하는 프로토콜을 의미한다. 2. 암호화없이 교환하기 때문에 도중에 해커가 데이터를 탈취하거나 변조 될 수 있는 위험한 면이 있다. 3. 포트번호는 80이다. https(HyperText Tranfer Protocol Secure) 특징 1. 웹 서버와 브라우저 간에 데이터를 교환하기 전 SSL나 TLS 프로토콜을 통해서 데이터를 암호화를 시키고 전송하는 프로토콜이다. 2. 전송방식은 크게 대칭키, 공개키 나눠진다. 3. 포트번호는 443이다. 4. https..
1달 동안은 딱히 해 볼만한 일이 생각나지 않아, 일단 적어도 1주일에 2번정도는 블로그에 글을 써서 공부를 하고자 결심해서 지금도 진행중이다. 아직까지는 꾸준히 하고 있기는 하지만, 무언가 딱 집중력있게 하는 것 같지가 않아서 내가 공부를 제대로 한건가 라는 의문점이 들기도 하다. 사실 여태까지 쓴 글을 다시 기억할려고 해도 하지못하는걸 보면 많이 부족한 느낌도 들기도 하다. 회사에서도 일할 때도 집중력있게 못하는 느낌이 들기도 하고... 일은 그래도 순조롭게 하는 거 같고, 그렇다고 잠을 못자는 것도 아닌데 산만해진다는 느낌 이 든다. 가만히 생각해보면, 책 읽는 것과 상대방 말을 듣는 거랑 연관이 있다고 생각한다. 이 2가지 경우에도 집중력이 없으면 무슨 내용인지 이해를 못하기 때문 이다. 그래서 ..
· web/rest
기본적으로 캐싱은 접근되어진 데이터들의 뭉치들을 저장하는 능력을 의미한다. 그래서 웹 자원을 효율적으로 쓰기 위해서는 캐싱이라는 부분이 중요하다. 마침 Rest의 가장 큰 특징인 부분이 바로 Cacheable이고, Http에 대한 리소스들을 캐싱을 하게 되면 성능에 있어서 이점을 가지게 된다. 클라이언트는 서버를 위해 캐싱된 응답을 반환해주고, Http 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능하다. Last-Modified응답 날짜 헤더는 언제 응답이 나타났는지 가리키는 데 반면에, Last-Modified 헤더는 지난 할당되어진 자원이 바뀔 때 가리킨다. 그래서 Last-Modified value는 Date value보다 최근일 수가 없다. Las..
· php
기본적으로 php을 이용한 정규표현식에 대한 자동링크는 구글링을 하면 쉽게 찾아볼 수 있다. XSS 공격을 막기 위해 php에서는 htmlspeicalchars이라는 메소드를 제공하게 된다. 이것을 쓰게 되면 XSS 공격을 쉽게 막을 수 있는 이점이 있다. 하지만 이 메소드는 스크립트 태그 뿐만이 아니라 모든 태그를 막아버리기 때문에 게시판 내용에서 URL 같은 것들을 링크를 달거나 색깔을 입힐 수 없게 된다. 혹시라도 htmlspecialchars을 썼다면 구글에 존재하는 어떠한 정규표현식도 제대로 안 먹힌거나 URL이 깔끔하게 링크가 되지 않는다.(결국엔 링크나 색깔도 태그를 써야하기 떄문이다.) 그렇다면 스크립트를 제외하고 몇몇 태그를 써야 한다는 상황이 올 때가 있다. strip_tags 라는 메..
· web/rest
Rest의 다음 특징은 Stateless이다. Stateless는 서버에 클라이언트에 대한 상태를 저장하지 않는 것을 의미한다. 대신 클라이언트에서 서버까지 보내지는 각각의 요청은 서버가 요청을 처리할 수 있도록 하는 정보가 포함이 되어야 한다. 그래서 클라이언트 쪽에서는 서버에 관련된 모든 상태를 관리하고 저장하는 책임이 있다. 그림 출처 : https://www.slideshare.net/KishrorKumar/getting-started-with-wp-rest-api 그림을 보시다시피 각 요청에 대해서는 서로 의존적이지 않기 때문에 서버 입장에서는 많은 요청들을 처리가 가능하게 된다. 게다가 요청들이 제대로 서버에 전달되었는지에 대해서 보장받기 위한 동기화 처리를 굳이 기다릴 필요가 없게 된다. 그..
· web/rest
Rest API 특징들 중에서 이번에는 Uniform Interface에 대해 설명할 까 하다. 정의는 URL로 지정된 리소스에 대한 조작을 통일하고 한정된 인터페이스로 수행하는 아키텍쳐 스타일이다. 단순히 정의로만 생각을 하면 추상적으로 들려 이해가 가지 않을 수가 있으니 한 번 풀어서 설명해볼려고 한다. 여러 특징들을 나누어서 Rest API에 관한 정의를 이해할 수 있다고 생각한다. 1) URL과 한정된 인터페이스예전에는 param을 통해 해당 resource에 접속을 할 수 있었다. 예를 들면 programmer7895.tistory.com?user=admin 이라는 URI를 통해서 관리자모드로 들어갈 수 있었다. 하나의 param이라면 상관이 없지만, 상황에 따라서는 URI 주소가 길어지는 염려..
· web/rest
RESTful API는 웹 서비스에서 가장 인기 있는 디자인 패턴 중 하나입니다. REST는 Representational State Transfer의 약자로, 웹의 장점을 최대한 활용할 수 있는 아키텍처를 의미합니다. RESTful API는 HTTP 프로토콜을 기반으로 구축되며, 웹 서비스 간 통신을 단순하고 일관성 있게 만들어줍니다. API는 Application Programming Interface의 약자로, 다른 소프트웨어와 소통하기 위한 방법을 제공합니다. RESTful API의 특징 1. Stateless RESTful API는 상태를 유지하지 않습니다. 이는 각 요청이 서버에서 처리되는 독립적인 트랜잭션이라는 것을 의미합니다. 서버는 클라이언트의 이전 요청에 대한 정보를 기억하지 않으며, ..
개발만파볼까
신입 개발자의 하루