분류 전체보기 (371) 썸네일형 리스트형 [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter08] : 레이어드 아키텍처를 사용할 때 유념해야하는 것 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요일반적인 개발자들이 생각하는 레이어드 아키텍처란 무엇이며, 그로 인해 발생하는 문제점을 살펴본다. 8.1 레이어드 아키텍처의 최소 조건: 레이어드 아키텍처란?레이어드 아키텍처는 애플리케이션을 레이어로 나누고 각 레이어에 역할을 정한다.대표적인 레이어에는 프레젠테이션, 비즈니스, 인프라스터럭처와 같은 레이어가 있다. : 한 가지 유념해야할 사실레이어드 아키텍처를 만든 사람은 존재하지 않는다.레이어드 아키텍처는 누군가의 철학에 의해 만들어진 아키텍처가 아니다.레이어드 아키텍처는 여러 개발자의 필요에 의해 발전된 아키텍처이다. 그래서 레이어드 아키텍처를 이해하는 깊이와 수준이 개발자마다 천차만별이다. : 레이어드 아키텍처는.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter07] : 서비스란 무엇인가?, 애플리케이션/도메인 서비스는 어떻게 다른가?, 서비스의 본질은 ? 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요서비스의 역할은 “도메인 객체나 도메인 서비스라고 불리는 도메인에 일을 위임하는 공간”이어야 한다이는 서비스의 역할을 다음과 같이 크게 3가지 종류의 일을 해야한다는 의미이다.도메인 객체를 불러온다.도메인 객체나 도메인 서비스에 일을 위임한다.도메인 객체의 변경 사항을 저장한다.서비스 컴포넌트가 왜 이러한 역할을 해야하는지 알아보자.도메인 서비스란 무엇이며, 스프링에서는 서비스는 왜 서비스라고 부르는지, 서비스 컴포넌트에 추가적으로 기대하는 역할이나 책임은 무엇인지 파헤쳐 보자. 7.1 Manager: 스프링에서 서비스는 왜 서비스라고 부를까 ?이에 대한 해답은 스프링의 “@Service” 애너테이션이 작성된 실제 코드.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter06] : 스마트 UI, 트랜잭션 스크립트, 레이어드 아키텍처, 서비스 컴포넌트는 비즈니스 로직이 아니다, 애플리케이션의 본질 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 이 챕터는 스프링 개발자가 많이 저지르는 “구조적 실수”에 대해서 다룬다. 개발에는 정답이 없지만 “이렇게 개발하면 유지보수나 확장성 관점에서 좋지 못하다”라고 알려진 안티패턴은 존재한다. 소개할 안티패턴은 기초적이지만 누구나 실수할 법한 내용이다. 6.1 스마트 UI: 스마트 UI 패턴은 에릭 에반스의 저서 도메인 주도 설계에서 소개돼 유명해진 안티패턴이다.스마트 UI 패턴은 다음과 같은 특징을 가진 코드를 말한다.스마트 UI는 데이터 입출력을 UI 레벨에서 처리한다.스마트 UI는 비즈니스 로직도 UI 레벨에서 처리한다.스마트 UI는 데이터 베이스와 통신하는 코드도 UI 레벨에서 처리한다. : 백엔드 개발자가 왜 .. Private Repository의 Permanent URL에 접근할 경우 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 티스토리 업로드 자동화를 테스트하는 과정에서 Github API를 다뤘다. Public Repository의 특정 file의 content를 읽어들이려면 공개된 URL로 접근하면 가능했기에 간단했지만 Private Repository는 조금 다른 접근법을 취해야했다. 이 글에는 Private Repository의 특정 file content를 읽어들이기 위해 했던 방법을 기록하려한다. Github Token 준비하기Private Repository는 Github Token을 통해서만 접근이 가능하다. Github Token의 생성은 "Settings -> Developer Settings -> Personal acc.. Obsidian 노트를 Tistory에 업로드 시키는 방법 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요그 동안 Notion을 쭉 사용하면서의 생긴 불편함은 인터넷에 접속 가능한 환경에서만 이전 기록물에 접근할 수 있단 점이었습니다. 버스를 타고 여행을 갈 때 기차를 타고 본가에 내려갈 때는 인터넷 환경이 불안정하여 Notion을 통해서는 이전 기록물에 접근할 수 없는게 아쉬운 점으로 작용했네요. 이러한 아쉬운 점을 안고 가다 문득 기록물을 Notion으로 통합 관리하지 말고 개인 저장장치내에 MarkDown 파일로 글에 대한 원본을 저장해보자라는 아이디어를 떠올리게 됬습니다. 한 가지 문제점은 MarkDown 편집기를 무엇으로 이용할 것이냐에 대한 문제 입니다. Markdown은 조금만 학습하면 사용할 수 있는 편리한.. [자바/스프링 개발자를 위한 실용주의 프로그래밍][chapter05] : 순환참조, 순환참조 문제, 순환참조 해결법 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요: 순환참조란 ?두 개 이상의 객체나 컴포넌트가 서로를 참조함으로써 의존관계에 사이클이 생기는 상황을 말한다.예를 들어 객체 A가 B 객체를 참조하고, 객체 B가 다시 객체 A를 참조하는 양방향 참조는 대표적인 순환참조의 예이다.이러한 순환 참조는 소프트웨어 설계에서 자주 볼 수 있는 대표적인 안티패턴 중 하나이다. : ❗JPA의 양방향 매핑은 순환 참조이다.양방향 매핑이라고 부른다고 해서 순환 참조가 아닌 것은 아니다. 양방향 매핑은 순환 참조 사례 중 하나이다. : 순환 참조가 발생한다는 것은 서로에게 강하게 의존한다는 것사실상 하나의 컴포넌트라는 의미이며 책임이 제대로 구분되어 있지 않다는 의미이다. 따라서 순환 .. [picoCTF] Who are You Walk Through해당 문제는 브라우저에 표출되는 문장에 대응하는 적절한 HTTP Header를 수정해서 요청하는 방식으로 풀어낼 수 있다. 처음 접속하면 다음과 같은 문장이 보인다.Only people who use the official PicoBrowser are allowed on this site!PicoBrowser를 통해서만 접속할 수 있다고 하니 "User-Agent"를 "PicoBrowser"로 수정해서 접속하면 다음과 같은 문장이 나온다.t trust users visiting from another site.이 때 부터는 curl 명령어를 이용했다. 위 문장은 다른 사이트로부터 방문한 사용자를 허용하지 않는다고 하는 듯 하다. HTTP Header 중 "Referer" Header.. [picoCTF] Super Serial 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스Walk-Through문제 링크로 접속하면 username과 password 입력 박스가 보인다. 입력 박스를 통해 기본적으로 시도해볼 수 있는 SQL Injection 을 해봤지만 성공하진 않는다. 문제 풀이에 대한 힌트를 얻기 위해 사이트 내부로 돌아다니자. 일단 /robots.txt 를 접속 시도했을때 다음과 같은 내용이 보인다.User-agent: *Disallow: /admin.phpshttps://www.solvusoft.com/ko/file-extensions/file-extension-PHPS 에 따르면 phps는 PHP Source를 볼 수 있는 파일이라고 되어있다. robots.txt를 통해 admin.p.. 이전 1 2 3 4 5 6 ··· 47 다음