목록백엔드 (17)
기술 블로그
객체지향 프로그래밍: 인스턴스와 클래스, 동적 바인딩 이해하기 인스턴스와 객체의 차이 인스턴스와 객체의 차이를 이해하려면 먼저 클래스의 개념을 알아야 한다. 클래스는 객체를 생성하기 위한 템플릿이다. 객체는 클래스에서 정의한 것을 바탕으로 메모리에 할당된 상태를 말하며, 인스턴스는 특정 클래스로부터 생성된 객체를 의미한다. 클래스를 설계도에 비유한다면, 객체는 설계도로부터 만들어진 실제 제품이고, 인스턴스는 그 제품이 어떤 설계도로부터 만들어졌는지를 명시할 때 사용하는 용어다. 인스턴스 변수와 클래스 변수 인스턴스 변수는 클래스로부터 생성된 각 객체에 할당되는 변수이다. 이 변수는 객체마다 별도로 존재하며, 객체의 상태를 나타낸다. 클래스 변수는 클래스에 속한 변수로, 해당 클래스의 모든 객체가 공유한다..
포폴 1 슈즈옥션 스케일 아웃 방식 고려 프로젝트 분산서버 고려 세션 정합성 문제 해결 (sticky session, tomcat clustering등 중 세션 저장소 구축 사용) Spring-redis-session 캐시 적용 , 로컬 캐싱과 글로벌 캐싱 중 글로벌 캐시 적용(레디스로) 레디스 활용 레디스 맥스 메모리 설정으로 스왑 영역 보호 캐시 정책 비교하여 LFU 적용 중복되는 부가기능 인터셉터와 ArgumentResolver 활용 jpa 성능 최적화 모든 fetch lazy로 n+1문제 코드는 리펙토링 젠킨스 ci cd NCP 이용 멀티 브랜치 파이프라인 설계 mysql replication 성능개선 -ncp2대 이용 이후 동적라우팅 설정으로 read와 write/read 분리 aws lambd..
https://jaegwan.kim/56 친구 모바일 청첩장 백엔드 계획 조건 disqus등의 솔루션 사용 불가 빠르게 개발 예쁜 도메인 개발 선택 Spring mvc sts mysql 서버 선택 적절한 트래픽 제공 저렴한 가격 커스텀 도메인 heroku https://parkbongil.github.io/heroku-spring-boot/.. jaegwan.kim 지인 부탁으로 모바일 청첩장을 만들었고 3가지 문제가 있었다. 1. 개발 학부 수업에서 스프링부트 mvc로 배운게 다 인지라 주먹구구식으로 수업자료를 활용해 만들었다. 내가 담당한 부분은 모바일 청첩장의 방명록 백엔드 구현이었다. db제작부터 백엔드 연결까지 모두 생소하여 시행착오가 많았다. 페이지네이션을 구현하면서 다음 페이지시 새로고침과 ..
웹 컨테이너(WAS)가 실행되면서 DB와 미리 connection(연결)을 해놓은 객체들을 pool에 저장해두었다가. 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식 대부분의 백 서비스들은 커넥션 제한을 두고있다. 그렇기에 자원을 효율적으로 활용해야 되므로 연결 풀링이 필요하다. spring boot mvc 에서 적용 방법 application.properties = spring.datasource.hikari.username=afnoxcv94pt2vmxs spring.datasource.hikari.password=igmvtai8x5nc484h spring.datasource.hikari.maximum-pool-size=..
조건 disqus등의 솔루션 사용 불가 빠르게 개발 예쁜 도메인 개발 선택 Spring mvc sts mysql 서버 선택 적절한 트래픽 제공 저렴한 가격 커스텀 도메인 heroku https://parkbongil.github.io/heroku-spring-boot/ (:heroku spring boot 배포) Heroku 가입부터 Spring Boot 배포까지 Java Web Application을 가볍게 테스트하기 좋은 PaaS(Platform as a Service)인 Heroku에 Spring Boot로 배포해본다. DB도 무료로 제공하니 연결해보고, hello world만 찍어보면 심심하니까 Bing 배경화면 API와 과 Google parkbongil.github.io https://hayd..
콜백(Callback)은 이름에서 예상할 수 있듯이 호출(Call)을 거꾸로(Back) 하는 것입니다.기촌에 호출자가 피호출자를 부르는 것과 반대로 피호출자(Callee)가 호출자(Caller)를 부르게 되죠. 일반적으로 사용자가 시스템에 임의의 서비스를 호출하는 것이 보편적입니다. 즉, 처리루틴은 시스템에 존재하고 사용자가 해당 루틴을 요청함에 따라 동작이 일어나는 것이죠. 이런 정상적인 호출과 달리 시스템 측에서 이벤트를 발생시켜 이에 대한 처리를 해달라고 요청해오는 과정에서 콜백이 사용됩니다. 일반적인 경우와 반대가 되는 상황이죠. 프로그래밍에서 콜백(callback)은 다른 코드의 인수로서 넘겨받는 서브루틴이다. 이를 통해 높은 수준의 층에 정의된 서브루틴(또는 함수)을 낮은 수준의 추상화층이 호..
ArrayList에 여러값을 넣기 위해서는 여러값을 담을수 있는 클래스를 만든 뒤 ArrayList 이런식으로 그 클래스를 담으면 됩니다. 그 클래스의 생성자에는 가변인수에 우리가 담고자하는 변수들을 넣어줍니다.저는 int2개와 스트링을 넣을 수 있도록 하였습니다. 그 후 그 값을 ArrayList.add(new TestBean(변수, 변수, 변수)); 를 이용하면 그 클래스가 ArrayList에 담기기 때문에 여러값을 저장해놓고 사용할 수 있습니다.
클래스에 선언된 변수를 "객체변수"(인스턴스 변수, 맴버 변수,속성)라고 부른다. 객제 변수나 객체 메소드는 .(도트연산자)를 통해 접근할 수 있다. 객체이름.객체변수(); 객체 자기자신을 나타낼때 this 키워드 사용 현재 클래스의 인스턴스를 의미합니다.즉, 현재 클래스의 멤버변수를 지정할때 사용합니다. 객체생성으로 타 클래스 참조 가능 상속으로 선언없이 자기 클래스 선언후 참조도 가능 ㅡㅡㅡprivate 해당 클래스에서만default 해당 패키지에서만protected 해당페키지와 상속받은 클래스에서만public 모두 ㅡㅡㅡstatic 변수: 어떤 객체이던지 동일한 값이여야 한다(ex score)같은 메모리를 공유하므로 객체를 따로 만들더라도 두개이상의 메모리를 사용하지 않는다. static 메소드: ..
if( && || !) switch case 1234567891011121314151617181920212223package hw; public class switchdemo { public static void main(String[] args) { String grade =""; int gnum=2; switch(gnum) { case 1:grade="새내기"; break; case 2:grade="헌내기"; break; case 3:grade="사망년"; break; default:grade="고인물"; break; } System.out.println(grade);}} Colored by Color Scriptercs 123456789101112131415package hw; public clas..
2장씩 안드로이드와 병행