분류 전체보기 262

나에게 클린코드란?

클린코드란 개발을 접해봤다면 많이 듣고 고민해 봤을 것이라고 생각한다.내가 생각하는 클린코드는 가독성이 좋은 코드 모든 팀원(나포함)이 이해하기 쉽도록 작성된 코드라고 생각한다.프로젝트를 진행하면서 다른 사람의 코드를 보면서 이해하지 못해 한참을 보기도 하고, 기존에 구현된 코드를수정하거나 넘겨받을 때 완전히 기존 클래스를 날리고 다시 구현한 경험이 있었다. 이런 경험을 바탕으로 다른 프로젝트를 할 때는 팀원들과 상의해서 프로젝트 초기에 메서드명 규칙을 정하고 구현했더니 코드를 분석하는 시간이 많이 감소되었고 단순 실수나 오류들이 줄어 프로젝트 완성속도가 올라가고팀원들과 하는 코드리뷰가 즐거워졌다. 그리고 깃허브에서 다른 사람의 코드를 볼 때도 메서드명이 직관적이고 깔끔한 코드를 찾아서 보게 되면 감탄..

카테고리 없음 2024.04.29

내 주력 언어의 특징 그리고 그 중 내가 가장 좋아하는 특징

내 주력 언어의 특징 그리고 그중 내가 가장 좋아하는 특징내 주력 언어 '자바'의 특징 1. 객체 지향 언어(OOP, Object Oriented Programming) 자바의 특징으로 가장 먼저 생각나는 특징인 객체 지향적이라는 것이다. 모든 기능을 객체로 만들어 사용하고 만들어진 객체들을 조합하여 하나의 프로그램으로 만든다.자바는 숫자나 논리값을 제외하면 거의 객체로 구성되어 있고 Object 클래스에서 모든 클래스를 파생한다. 설계단계부터 객체를 고려하기 때문에 캡슐화, 상속, 추상화, 다형성이 잘 적용된다.자바의 이런 객체 지향적 특성은 코드의 재사용성, 생산성이 향상된다. 2. 하이브리드 언어자바는 컴파일 언어인 동시에 인터프리터 언어인 혼합한 형태의 하이브리드 언어이다.텍스트 소스를 컴파일하여..

나는 왜 개발자가 되고 싶을까

나는 왜 개발자가 되고 싶을까 개발자라는 직업에 관심을 가지게 된 계기 로고 디자이너 인턴 시절 같이 일하던 개발자분을 보며 일하는 모습을 가까이 접하게 되었고 대화를 나눌 수 있는 기회가 있었는데 이때 들었던 말이 인상 깊었다. "새로운 기술이 이 순간에도 나올 수 있기 때문에 계속 공부해야 하고 문제를 해결하는 과정이 항상 필요하며 그것을 즐긴다. 개발자라는 직업은 매력적이고 나는 이 직업을 좋아한다"라고 말씀하셨고 큰 감명을 받았다. 가슴에 울림이 있었던 순간인 것 같다! 그때는 개발자라는 직업을 잘 몰랐기에 나도 누군가에게 나의 직업은 매력적이고 좋아한다! 라고 당당하게 말할 수 있는 직업을 같고 싶다고 생각했다. 그 이후에 개발자라는 직업에 꾸준히 관심을 가지고 있었지만 개발은 엄청 어려울 거야..

리팩토링 시작하기

🔥 리팩토링 시작 이유 프로젝트 코드를 다시 살펴보면서 예전에는 마감 압박으로 주의를 기울이지 못했던 부분들이나 프로젝트 종료 후 해당 코드를 다시 살펴보면서 문제점과 개선할 부분들을 발견하게 되었습니다. 시간이 지나 다시 본 코드는 이해하기 어렵거나 문제점들을 발견하게 되었고 이런 상황에서는 코드의 가독성과 유지보수성을 높이기 위해 리팩토링의 필요성을 느꼈습니다. 📌 리팩토링 기준 if가 중첩된 조건문 불필요한 주석 이해하기 힘든 메서드, 클래스 명 사용하지 않는 메소드, 클래스, 애노테이션, 생성자 package import 등 📚 리팩토링 계획 1. 먼저 쓰지 않는 메서드, 클래스, 등을 정리하기 2. 이해하기 힘든 메소드 명을 발견하면 변경하기 3. if문이 난무하는 메소드를 분리하기 4. Ser..

Filter, Interceptor, AOP 개념과 용도 비교

Filter, Interceptor, AOP 개념과 용도 비교 스프링 시큐리티를 공부하면서 filter, Interceptor, AOP에 대해 공부하면서 웹 개발을 하다 보면 공통적으로 처리해야 하는 부분이 있는데 (로그, 페이지, 로그인 관련 등) 중복된 코드를 줄이고 공통업무에 관련된 코드를 따로 빼서 처리 해주는게 아래의 3가지였다. 1. Filter 2. Interceptor 3. AOP 스프링에서 해당 세 가지 기능은 로직 수행 전 먼저 실행하거나 , 로직 후에 실행하거나 할 때 사용되며 호출되는 시기가 다르다. Filter, Interceptor, AOP 흐름 1. Filter ▶ Filter의 역할 - Filter는 Dispatcher Servlet이 실행되기 전에 수행된다.(Dispatch..

카테고리 없음 2023.09.24

프론트엔드에서 데이터를 받는 3가지 방법

프런트엔드에서 데이터를 받는 3가지 방법 ▶ @RequestParam - 전달받은 데이터를 URI상에서 찾을 수 있다. - 해당하는 데이터만 받아올 수 있다. - @RequestParam으로 데이터를 받을 때는 데이터를 저장하는 이름으로 메서드 파라미터명을 설정해야 한다 @GetMapping("/user") public String createMember(@RequestParam String name, @RequestParam long id){ } ex) http://localhost:8080/user?name=OOO&id=1 위의 형식으로 사용된다! ▶ @PathVariable -URI 경로의 일부를 파라미터로 사용할 때 이용 - 요청 URI 매핑에서 템플릿 변수를 처리하고 이를 메서드 매개변수에 자동..

카테고리 없음 2023.08.23

스프링 의존성 주입 방법

스프링 의존성 주입 방법 필드 주입 ▶ 필드 주입 - 필드에 @Autowired를 붙여서 주입하는 방법 ▶ 필드 주입 특징 - 코드가 간결하다. - 외부에서 변경이 힘들다. - 프레임워크에 의존적이다. - 정상적으로 작동되려면 setter가 필요하다. - 필드 주입은 DI 컨테이너 안에서 작동하여 자바 코드로 테스트하기 어렵다. @Controller public class ProductController { @Autowired private ProductService productService; } 생성자 주입 ▶ 생성자 주입 - 생성자를 통해 의존 관계를 주입받는 방법 - 생성자에 @Autowired를 하면 @Component로 등록된 빈에서 생성자에 필요한 빈 주입 ▶ 생성자 주입 특징 - 클래스의 ..

카테고리 없음 2023.08.21

HTTP Method

HTTP Method ▶ HTTP Method란? - HTTP Method란 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식 (서버가 수행해야 할 동작을 지정하여 요청을 보내는 방법) ▶ HTTP Method종류 GET - 리소스 조회 POST - 요청 데이터 등록 PUT - 리소스 덮어쓰기, 해당 리소스가 없으면 생성 PATCH - 리소스 수정(부분 변경) DELETE - 리소스 삭제 HEAD - body 부분 제외, 상태와 헤더만 반환 (조회) OPTIONS - 대상 리소스에 대한 통신 가능 옵션을 설명 CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트 수행 ▶ HTTP 주요Method 1) P..

카테고리 없음 2023.08.18

REST API란?

REST API ▶ REST API란? - REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 것을 기반으로 만들어진 API를 의미 - 데이터와 기능의 집합을 제공하여 프로그램 간 상호작용을 하며, 정보 교환가능하도록 하는 것! ※ REST란 HTTP URI를 통해 자원을 명시하고, HTTP 메서드를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미 ※ API란? 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙 ▶ REST API 구성 - 자원 : URI - 자원에 대한 행위 : HTTP METHOD (GET, POST, PUT, DELETE) - 자원에 대한 행위의 표..

카테고리 없음 2023.08.18

Controller, Service, Repository 란?

🔥 Controller, Service, Repository를 알아보기 전에 3가지 요소들이 속한 MVC 패턴이 이해되어야 한다(정확히는 Model) MVC패턴 ▶ MVC패턴이란? - MVC는 Model, View, Controller의 약자이며, 애플리케이션, 프로젝트를 구성하는 요소를 세 가지 역할로 구분 - 사용자가 웹 브라우저를 통해 URL을 호출하면 Controller에서 요청을 받고 로직이나 데이터가 필요하면 Model에서 호출하여 모델에 구성된 비즈니스 로직(Service)이나 데이터베이스(Repository)에 접근해서 데이터를 가져온다. - 가져온 데이터를 다시 Controller -> VIEW로 보내며 최종적으로 유저에게 데이터와 로직이 적용된 화면을 제공. ▶ MVC패턴 사용이유 - ..

카테고리 없음 2023.08.17