반응형

분류 전체보기 141

[HTML/CSS] #5 CSS 박스 크기가 이상하다면? 박스 모델 사용법 (박스 크기 설정, box-sizing, content-box, border-box 차이점)

1. box-sizing box-sizing은 css 속성이다 속성 값으로는 content-box, border-box가 있다 기본값은 content-box이다.( 박스 크기가 바뀜 --> 컨텐츠 크기는 그대로 border-box의 width, height = content + border + padding 만약 padding이나 border 값을 조정한다면? --> 박스 크기는 그대로 --> 컨텐츠 크기가 바뀜 *박스 모델 변경이 필요한 이유* 기본값인 content-box는 padding 값이나 border 값을 바꾸면 박스의 크기 바뀌게 되어 원하는 형태의 스타일링이 어려워지기 때문 그래서 보통은 편한 스타일링을 위해 border-box로 변경해서 많이 사용한다. 3. 예시 See the Pen U..

HTML, CSS 2022.02.11

[Java] 자바 static 사용법 (static이란, 사용법, main 메서드에 static이 쓰이는 이유)

1. static이란? static은 정적이다 또는 고정되다는 의미 static이 붙은 것은 정적 멤버라고 칭한다 객체가 아닌 클래스에 고정되어 있는 멤버이다 클래스가 로딩이 될 때 따로 인스턴스를 생성해주지 않아도 메모리에 올라간다 프로그램이 종료될 때까지 메모리에 할당되어 있어서 어디서든 공유하여 참조할 수 있다 -> 그래서 static을 너무 많이 사용하면 시스템 성능 문제가 발생할 수도 있다. 인스턴스 생성 없이도 사용할 수 있다 *메인 메서드가 static인 이유* public static void main(String[] args) 이렇게 메인 함수에 static이 붙는 이유도 객체 선언 없이 바로 메모리에 올려준다는 의미이다. (바로 실행이 될 수 있도록) 2. 사용법 다른 객체들에 공용으로..

Java 2022.02.10

[HTML/CSS] #4 CSS 변수 저장하고 사용하기 (색이나 폰트 값을 변수에 저장하고 사용하는 법)

CSS 변수 사용하기 css도 다른 프로그래밍 언어처럼 변수를 선언하고 값을 저장하는 형태처럼 사용할 수 있음 자주 사용하는 색이나 폰트의 설정값을 편리하게 사용 가능 코드를 변경할 때도 변수 값만 바꾸면 되기에 유지보수에 유리 1. 변수 선언 --variable-name: value; 2. 변수 사용 property: var( --variable-name ) 3. 예시 See the Pen Untitled by KwonRakhyun (@nack1400) on CodePen. 변수를 선언한 노드와 자식 노드들이 변수를 사용 가능함 그렇지만 보통은 root에 선언을 해서 전체가 사용 가능하도록 선언함

HTML, CSS 2022.02.06

객체 지향 프로그래밍의 다형성이란? (다형성의 본질, 역할과 구현, 구현 객체와 인터페이스)

다형성(Polymorphism) 객체 지향에서 가장 중요한 개념 예시 1) 무대에서 공연을 하는 배우와 감독 특징 1 - 배우는 대체가 가능해야 한다. => 이상이 생긴 곳만 고치면 된다. 유연하다. 특징 2 - 배우는 상대배우가 바뀌어도 똑같이 연기를 하면 된다. => 다른 곳의 코드를 변경해도 다른 객체들은 변경할 필요가 없다. 변경에 용이하다. 예시 2) 운전자와 자동차 특징 1 - 운전자는 운전하는 법을 한 번만 배우면 같은 설계의 모든 차를 운전할 수 있다. => 클라이언트의 코드를 변경할 필요가 없음 특징 2 - 차는 종류가 달라져도 운전하는 법은 똑같아야 한다 => 오버라이딩의 개념, 인터페이스에 구현된 것을 그대로 쓰되 틀 안에서 유연하게 변경 가능 역할과 구현의 분리 역할 = 인터페이스 ..

객체 지향 프로그래밍(Object Oriented Programming)이란? (객체지향 키워드, 특징, 면접 질문)

객체 지향 프로그래밍에 대해서 정리해보겠습니다. 객체 지향 프로그래밍이란? 컴퓨터 프로그램을 단순히 명령어로 보는 것이 아닌 독립된 "객체"들의 모임으로 파악하는 개념 각각의 객체는 메시지도 주고받고 협력할 수도 있다 한마디로 데이터를 추상화해서 객체로 만들고 객체 간에 상호작용을 하도록 프로그래밍하는 방법이다. 객체 지향의 장단점은? 장점 유연하고 변경에 용이하다(유지보수가 쉽다) - 전체 코드를 일일이 찾아서 수정하지 않고 객체 하나만 수정하면 됨 대규모 소프트웨어 개발에 적합하다. - 업무 분담이 쉬움 코드 재사용이 편리하다 모델링이 쉽다 - 객체라는 개념이 현실 세계와 비슷하기 때문 단점 실행 속도가 상대적으로 느림 난이도가 어려움 설계와 구현에 더 많은 시간이 소요 객체 지향의 키워드 및 특징 ..

마크다운(Markdown) 문법 정리 (깃허브 리드미, README.md 파일 작성 방법)

오늘은 깃허브 리드미 파일 작성뿐 아니라 다양한 디지털 노트에서 사용되고 있는 마크다운(Markdown)이라는 언어에 대해서 알아보고 정리해보겠습니다! 1. 마크다운(Markdown)이란? 특징은? 텍스트 기반의 마크업 언어 쉽고 가볍고 간단하다. 깃허브에서 README.md 파일로 많이 사용이 된다. (소스코드 설명 등의 용도로) 에디터나 도구 없이도 쉽게 작성이 가능하다. 변환이 쉽다. 2. 사용법 및 문법 1) 제목 제목 크기에 따라 #을 붙이고 내용 입력 2) 구분선 ---와 ***로 구분선을 만들 수 있음 ---은 바로 위의 내용을 제목으로 만들어버림 3) 텍스트 효과, 강조 효과 *, _로 텍스트 효과를 줌 중복도 가능 4) 인용구 > 로 인용구를 만들 수 있음 > 의 개수로 중복 가능 5) ..

Information 2022.01.23

[Spring] 스프링 AOP 개념, 실행 과정(프록시 생성, 의존관계 변경)

AOP Aspect Oriented Programming 공통 관심 사항(cross-cutting concern)과 핵심 관심 사항(core concern)의 분리 공통 관심 사항을 따로 두고 원하는 곳에 마음대로 적용시키는 것 예) 메서드 시간 측정을 하고 싶을 때, 메서드에 일일이 시간 측정 코드를 다 작성하는 것이 아닌 따로 하나 만들어 두고 원하는 곳에 적용할 수 있도록 해주는 기술 @Aspect로 AOP 사용 @Component로 스프링 컨테이너에 등록 @Around로 적용시킬 범위를 설정 AOP에 의한 프록시 생성과 의존 관계 변경 기존 의존관계 실제 컨트롤러 -> 실제 서비스 -> 실제 리포지토리 AOP로 인해 프록시가 생성되어 변경된 의존관계 프록시 컨트롤러 -> 실제 컨트롤러 -> 프록시..

Spring 2022.01.20

[Spring] 스프링 DB 접근 및 테스트, JPA (데이터베이스, 테스트코드, JPA, 스프링 데이터 JPA)

스프링 DB 접근 방법 순수 JDBC 리포지토리 구현 JDBC Template 사용 JPA 스프링 데이터 JPA 1. 순수 JDBC 리포지토리 구현 - 이 부분을 정리해볼까 하다가 엄청 옛날 기술이고 앞으로 쓸 일도 많이 없을 거 같아서 생략하려고 합니다 - 예전에 JSP에서 썻던 기억은 있네요. 2. 기존 코드에서 DB만 변경 객체 지향의 다형성을 활용한 방법 개방-폐쇄 원칙 : 확장에는 열려있고, 수정, 변경에는 닫혀있다. 기존 코드 변경 없이 설정만 바꿔주어 DB를 변경할 수 있다. 3. 스프링 통합 테스트 @SpringBootTest : 스프링 컨테이너와 함께 테스트를 실행한다. @Transactional : 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 롤백. DB에 데이터가 남지 않..

Spring 2022.01.20

[Spring] 스프링 빈과 의존관계 (스프링 빈에 등록하는 방법, 컴포넌트 스캔, 자바 코드)

스프링 빈에 등록하는 목적 스프링 컨테이너 안에 스프링 빈을 등록하여 컨트롤러가 리포지토리와 서비스를 사용할 수 있도록! 스프링 빈을 등록하는 방법 컴포넌트 스캔과 자동 의존관계 설정 (@Component -> @Service, @Repository...) 자바 코드로 직접 스프링 빈 등록 1. 컴포넌트 스캔 방식 @Component 애노테이션 : 스프링 빈으로 자동 등록해줌 @Controller, @Service, @Repository은 기본적으로 @Component를 포함하고 있음 그래서 @Controller, @Service, @Repository만 써도 스프링 빈에 등록이 됨 장점 : 쓰기에 편하다. 예시) 참고 : 스프링 빈에 등록하기 위해 @Component을 스캔하는 경로 범위는 실행 파일에..

Spring 2022.01.18

[Spring] 스프링 기본적인 백엔드 개발 예제 및 테스트 (기본적인 구조, 간단한 테스트 케이스 작성)

일반적인 웹 애플리케이션 계층 구조 컨트롤러 : MVC에서 컨트롤러 역할 서비스 : 핵심 로직, 알고리즘을 구현하는 곳 리포지토리 : DB에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, DB에 저장될 객체들, 회원이나 주문 등 컨트롤러 -> 서비스 -> 레포지토리 -> DB 순으로 접근 컨트롤러, 서비스, 레포지토리에서 도메인으로 접근 가능 생성한 예제 클래스들, 기본적인 구조 컨트롤러, 리포지토리, 서비스, 도메인 객체 생성 테스트 코드 작성 간단한 테스트 코드 작성 assertThat() 이용해서 비교 given, when, then으로 나누어서 작성해줄 수 있음 테스트 코드를 여러 개 작성 시 @AfterEach의 콜백 함수를 써줘야 함 테스트 코드들은 기본적으로 의..

Spring 2022.01.17
반응형